think it's ready

This commit is contained in:
brent s 2017-10-09 14:38:33 -04:00
parent 6423c36f24
commit 8441148e36
1 changed files with 26 additions and 2 deletions

View File

@ -4,8 +4,12 @@
# It can take a LONG time depending on the speed/type of disk and size of disk. # It can take a LONG time depending on the speed/type of disk and size of disk.
# Should probably only cron it once a week or so. # Should probably only cron it once a week or so.


import datetime
import os import os
import subprocess import subprocess
import sys

# needs badblocks, smartctl, and parted installed also


def getDisks(): def getDisks():
disks = [] disks = []
@ -28,10 +32,30 @@ def getDisks():
return(disks) return(disks)


def chkDisk(disk): def chkDisk(disk):
pass d = disk.replace('/', '.')
if os.path.isfile('/var/log/badblocks.{0}.log'.format(d)):
# for some reason this file was just created within the past 24 hours,
# so we better play it safe and write to a different log file
now = datetime.datetime.now()
modified = datetime.datetime.fromtimestamp(os.path.getmtime('/var/log/badblocks.{0}.log'.format(d)))
diff = now - modified
timedelta = datetime.timedelta(days = 1)
if not diff >= timedelta:
d += '_secondary'
bb = ['badblocks',
'-o /var/log/badblocks.{0}.log'.format(d),
disk]
smctl = ['smartctl',
'-t long',
'-d sat',
disk]
for c in (bb, smctl):
subprocess.run(c)
return()


def main(): def main():
pass for d in getDisks():
chkDisk(d)


def userChk(): def userChk():
# Needs to be run as root/with sudo, because of e.g. cryptsetup, etc. # Needs to be run as root/with sudo, because of e.g. cryptsetup, etc.