Monitoring hard drives is pretty similar to the work I touched on for onboard sensors. First we need the right tool for the job. In this case it’s smartctl.
smartctl is available in the smartmontools package for Ubuntu smartmontools. To install:
Once installed you will need to use sudo smartctl to test it.
By default the command outputs a lot of very useful information. Checkout a disk for example using the following:
Lots of info is outputted, have a search for “Temperature_Celsius” to find the temperature in Celsius.
To make life simpler for collecting this information I use pySMART. This Python library makes processing the output from the command so much simpler. The script below extracts all temperatures for the disks stored in the dict DISKS. The pattern is device name (just the disk not the full path) and whatever you want to know the disk as.
I run the script from root’s cron as the smartctl command requires root privileges. Do the following to add it to root’s crontab. The example below will run the script every minute.