44 lines
863 B
Plaintext
44 lines
863 B
Plaintext
|
#!/usr/bin/python3
|
||
|
|
||
|
import time
|
||
|
import glob
|
||
|
import os.path
|
||
|
|
||
|
import ltsdb_record
|
||
|
|
||
|
now = time.time()
|
||
|
with open("/proc/uptime") as fh:
|
||
|
ln = fh.readline()
|
||
|
uptime = float(ln.split()[0])
|
||
|
last_reboot = now - uptime
|
||
|
|
||
|
last_mtime = 0
|
||
|
for p in glob.glob("/boot/**/*", recursive=True):
|
||
|
mtime = os.path.getmtime(p)
|
||
|
if mtime > last_mtime:
|
||
|
last_mtime = mtime
|
||
|
|
||
|
if last_mtime > last_reboot:
|
||
|
overdue = now - last_mtime
|
||
|
else:
|
||
|
overdue = 0
|
||
|
|
||
|
report0 = []
|
||
|
report0.append({ "measure": "reboot_overdue", "unit": "s", "value": overdue})
|
||
|
report = [
|
||
|
{
|
||
|
"description": {
|
||
|
"hostname": ltsdb_record.node,
|
||
|
"measure": r["measure"],
|
||
|
"unit": r["unit"]
|
||
|
},
|
||
|
"data": [
|
||
|
[now, r["value"]]
|
||
|
]
|
||
|
}
|
||
|
for r in report0
|
||
|
]
|
||
|
|
||
|
success = ltsdb_record.record_observations(report)
|
||
|
exit(1 - success)
|