When monitoring S.M.A.R.T. values of disks in a Unix system, smartmontools is usually the way to go.
Unfortunately monitoring external disk enclosures may be difficult or not possible at all. I haven't seen a firewire enclosure that supported SMART commands yet.
USB enclosures tend to work, but I noticed that the scheduled self-tests would not complete. For example, for the following disk a short (S) self-test is scheduled every day at 3am and a long (L) self-test every saturday at 6am:
$ cat /etc/smartd.conf /dev/disk/by-id/scsi-SSAMSUNG_HD103UJ -d sat -a -o on -S on \ -s (S/../.././03|L/../../6/06) -I 190 -I 194 -W 5But so far every test did not complete:
$ smartctl -d sat -l selftest /dev/sdb === START OF READ SMART DATA SECTION === SMART Self-test log structure revision number 0 Warning: ATA Specification requires self-test log structure revision number = 1 Num Test_Description Status Remaining LifeTime(hours) # 1 Extended offline Aborted by host 00% 25980 # 2 Short offline Aborted by host 00% 25973 [...]Someone else had a similar problem and suggested to run
"smartctl -a /dev/disk...every few seconds while the self-tests are in progress, so that the disk would not shut down. Preliminary tests showed that this helped in my case as well.
From now on the self-test schedule in
smartd.confwill be accompanied by some cronjob doing just this:
while smartctl -d sat -l selftest /dev/sdb 2>&1 | \ grep -q "Self-test routine in progress"; do sleep 30 doneThe crontab(5) entry for the schedule above:
# m h dom mon dow command 0 3 \* \* \* script /dev/disk/by-id/scsi-SSAMSUNG_HD103UJ 0 6 \* \* 6 script /dev/disk/by-id/scsi-SSAMSUNG_HD103UJWe might add some fuzzyness to this "script" of course, so that it will work when the actual self-tests starts a bit late.