Skip to content

Smartd

smartd is a daemon that monitors the Self-Monitoring, Analysis and Reporting Technology (SMART) system built into many ATA-3 and later ATA, IDE and SCSI-3 hard drives. The purpose of SMART is to monitor the reliability of the hard drive and predict drive failures, and to carry out different types of drive self-tests.

Installation

sudo apt install smartmontools

Configuration

Add the following to /etc/smartd.conf:

DEVICESCAN -a -S on -s (S/../.././03|L/../01/./02) -W 10,50,70 -m <nomailer> -M exec /home/user/ntfy.sh -M test
  • -a - Equivalent to turning on all of the following Directives: '-H' to check the SMART health status, '-f' to report failures of Usage (rather than Prefail) Attributes, '-t' to track changes in both Prefailure and Usage Attributes, '-l error' to report increases in the number of ATA errors, '-l selftest' to report increases in the number of Self-Test Log errors, '-l selfteststs' to report changes of Self-Test execution status, '-C 197' to report nonzero values of the current pending sector count, and '-U 198' to report nonzero values of the offline pending sector count.
  • -S on - Enables or disables Attribute Autosave when smartd starts up and has no further effect.
  • -s - Run Self-Tests or Offline Immediate Tests, at scheduled times.
  • S/../.././03 - Runs a short test daily at 3AM.
  • L/../01/./02 - Runs a long test on the first of every month at 2AM.
  • -W 10,50,60 - Tracks disk temperatures and alerts if they rise too quickly or hit a high limit. The following will log changes of 10 degrees or more, log when temp reaches 50 degrees, and log/email a warning when temp reaches 60.
  • -m <nomailer> -M exec /home/user/ntfy.sh - Run a shell script instead of the default mail command for alerts.
  • -M test - Test the notification script, remove after testing.

Add the following to /home/user/ntfy.sh, replace the domain and topic:

#!/bin/bash

/usr/bin/curl -Ls -H "Title: $SMARTD_SUBJECT" -d "$SMARTD_FAILTYPE Device: $SMARTD_DEVICE Time: $SMARTD_TFIRST Message: $SMARTD_FULLMESSAGE" https://ntfy.domain.com/Topic

Restart to test the alert:

chmod +x /home/user/ntfy.sh
sudo systemctl restart smartd

Remove -M test from smartd.conf if everything works, and restart smartd again.