blob: 9035b6ab15a6eb3e3efa6d5cb480849363cd2d66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#!/usr/bin/env python3
"""
exa-receive.py: Save received routes form ExaBGP into file
"""
import argparse
import os
from sys import stdin
from datetime import datetime
parser = argparse.ArgumentParser()
parser.add_argument(
"--no-timestamp", dest="timestamp", action="store_false", help="Disable timestamps"
)
parser.add_argument(
"--logdir", default="/tmp/gearlogdir", help="The directory to store the peer log in"
)
parser.add_argument("peer", type=int, help="The peer number")
args = parser.parse_args()
# Ensure log directory exists
logdir = args.logdir
if not os.path.exists(logdir):
try:
# Create a new log directory
os.makedirs(logdir)
except OSError as e:
print(f"Error in creating log directory: {e}")
exit(1)
savepath = os.path.join(logdir, f"peer{args.peer}-received.log")
try:
routesavefile = open(savepath, "w")
except IOError as e:
print(f"Error in opening log file: {e}")
exit(1)
while True:
try:
line = stdin.readline()
if not line:
break
if not args.timestamp:
routesavefile.write(line)
else:
timestamp = datetime.now().strftime("%Y%m%d_%H:%M:%S - ")
routesavefile.write(timestamp + line)
routesavefile.flush()
except KeyboardInterrupt:
pass
except IOError:
# most likely a signal during readline
pass
routesavefile.close()
|