-
Notifications
You must be signed in to change notification settings - Fork 0
/
rateMonitor.py
52 lines (42 loc) · 1.82 KB
/
rateMonitor.py
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
#!/bin/python
from datetime import datetime, timedelta
import subprocess
import time
import zipfile
import glob
import os
filenameStart = 'rates_'
timeDelta = timedelta(hours=1)
lastArchive = datetime.utcnow()
while True:
if (datetime.utcnow()-lastArchive) > timeDelta:
lastArchive = datetime.utcnow()
zipFilename = 'rateLogs_' + datetime.utcnow().strftime("%Y%m%d-%H%M%S")
zf = zipfile.ZipFile('%s.zip' % (zipFilename), "w", zipfile.ZIP_DEFLATED)
for filename in glob.glob(filenameStart + '*'):
datetimeString = filename[filename.find(filenameStart)+len(filenameStart):]
year = int(datetimeString[0:4])
month = int(datetimeString[4:6])
day = int(datetimeString[6:8])
hour = int(datetimeString[9:11])
minute = int(datetimeString[11:13])
date = datetime(year, month, day, hour, minute)
if (datetime.utcnow()-date) > timeDelta:
zf.write(filename)
zf.close()
# Removing those files separately to be protected from unexpected crashes.
for filename in glob.glob(filenameStart + '*'):
datetimeString = filename[filename.find(filenameStart)+len(filenameStart):]
year = int(datetimeString[0:4])
month = int(datetimeString[4:6])
day = int(datetimeString[6:8])
hour = int(datetimeString[9:11])
minute = int(datetimeString[11:13])
date = datetime(year, month, day, hour, minute)
if (datetime.utcnow()-date) > timeDelta:
os.remove(filename)
time.sleep(5)
filename = 'rates_' + datetime.utcnow().strftime("%Y%m%d-%H%M%S")
f = open(filename, 'w')
subprocess.call(['tdf', 'run', 'rate_counters_menu_v4', 'gt_mp7.1'], stdout=f)
time.sleep(1*60)