How To Use SMART Monitoring in Linux NAS Drives
2026-02-23 | By Maker.io Staff
Network-Attached Storage (NAS) devices combine multiple HDDs and SSDs and make them accessible over a network, making them ideal for backups and long-term storage for large files. But like any hardware, drives can fail as they age, and catching problems early is crucial to preventing data corruption and loss. Read on to learn how to use automated SMART monitoring to detect potential drive problems before they result in a failure.

What is SMART?
Self-Monitoring, Analysis, and Reporting Technology (SMART) is an industry standard supported by virtually all consumer-level HDDs, SSDs, and some flash storage media. Its purpose is to help detect and predict potential drive failures before they happen by observing values reported by various sensors built into the drive.
Hardware failures generally fall into two categories: unpredictable and predictable. Unpredictable failures happen spontaneously, such as when a device is physically damaged by a drop or a component suddenly fails. The only reliable precaution is maintaining regular backups. Predictable failures, on the other hand, typically occur as a device wears out due to use. They usually announce themselves through measurable changes in operating parameters, like increased vibration, temperature, or error rates.
SMART is designed to detect these predictable failures. It defines a set of attributes, such as temperature, reallocated sectors, read/write error rates, spin-up time, and power-on hours, along with threshold values for each. Monitoring software can read these attributes and issue warnings if any values exceed their thresholds. A system, whether a computer or a NAS, can then react automatically or alert an administrator, who can take action such as creating backups or replacing the affected drive.
Why SMART Monitoring is Vital in a NAS
Network-Attached Storage (NAS) can be especially vulnerable to hardware failures, since the drives often run continuously, particularly in 24/7 setups. Additionally, NAS devices are often used to back up important files, and data corruption can be costly. Automated warnings that predict potential drive failures before they occur can help protect your data and prevent loss.
Installing a Linux SMART Monitor
Getting started with SMART monitoring on Linux only requires the installation of a single package:
sudo apt update sudo apt install smartmontools
Once installed, the following command lists the system’s block devices, and it helps identify the drive names of the devices to monitor:
lsblk
This screenshot demonstrates the output of the lsblk command.
Next, check whether SMART is enabled on the devices you want to monitor. Use the following command to determine the SMART status, but make sure to replace drive_identifier with the actual device name, for example, sda1:
sudo smartctl -i /dev/drive_identifier
Virtually all recent HDDs and SSDs support SMART. However, the check can still reveal that the feature is turned off, in which case you can enable SMART on a drive by typing:
sudo smartctl -s on /dev/drive_identifier
Finally, verify that the smart monitor works as expected by printing a health report of all relevant devices with the following command:
sudo smartctl -H /dev/drive_identifier
The screenshot shows the result of the SMART info output and the self-test result.
Using the -A flag with a drive lists all available attributes and their current values, and the -t flag starts a short/long self-test, depending on the parameter value:
sudo smartctl -A /dev/drive_identifier # Show attributes sudo smartctl -t short /dev/drive_identifier # Quick self-test sudo smartctl -t long /dev/drive_identifier # Full self-test
Use the -A flag to show the available SMART attributes and their values.
Configuring Automated SMART Warnings
Manually running health checks can give a snapshot of a drive’s current condition. However, devices typically fail silently at the worst possible time, and manual checks might miss emerging problems. Most SMART monitors can be configured to continuously keep an eye on drives and send an email alert to an administrator should they detect an issue.
Users only have to adjust a single configuration file to activate this feature:
sudo nano /etc/smartd.conf
By default, the file contains numerous comments, and it should have a single line starting with the DEVICESCAN keyword. Make sure to comment out the line by adding a pound symbol (#) at the start:
#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
Then, add an entry for each drive you want the tool to monitor:
/dev/drive_identifier -a -o on -S on -s (S/../.././02|L/../../6/03) -m you@example.com
Each line starts with the device identifier. It’s then followed by the -a flag, which tells smartd to monitor all available SMART attributes. The -o and -S flags turn on offline data collection and threshold persistence, respectively. The values in the parentheses instruct smartd to conduct a short (S) test each day at two in the morning, and a long (L) test on each Sunday at three in the morning. Lastly, the -m flag and its parameter specify who will be contacted in case of a problem.
Once configured, start and activate the background service by typing:
sudo systemctl enable smartmontools sudo systemctl start smartmontools
Installing a Mail Transfer Agent (MTA)
The SMART monitor alone cannot send emails; instead, it relies on a mail transfer agent (MTA). You can install an MTA and the accompanying packages for smartd by typing:
sudo apt install msmtp msmtp-mta bsd-mailx
Once installed, edit or create a global configuration file:
sudo nano /etc/msmtprc
Add your email provider’s configuration details to this file. In this example, I’ll configure a Google Mail account for sending out warning emails:
# Default account defaults auth on tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /var/log/msmtp.log
# Gmail account account gmail host smtp.gmail.com port 587 from your_gmail_address@gmail.com user your_gmail_address@gmail.com password your_app_password
# Set default account account default : gmail
When using Gmail, the client expects an app password, which is different from the Google account password. It must be created by navigating to the Google account settings and then selecting app passwords from the search bar on the security settings page:
Follow the highlighted steps to navigate to the app password settings in your Google account settings.
Next, enter a name that describes what the password will be used for:
Click the highlighted button to create a GMail app password.
Google creates a unique passphrase that's only displayed once. Copy the passcode and paste it into the MTA configuration file. Note that Google shows the 16-character code with spaces separating the individual four-character groups. You must remove these whitespace characters from the code in the configuration file:
Your MTA configuration file should look similar to the one shown in this screenshot.
Finally, adjust some system permissions so that the root user can access the newly created MTA configuration file. This step is necessary because the SMART monitor runs as a root process, and it sends emails using the root account:
sudo chmod 600 /etc/msmtprc sudo chown root:root /etc/msmtprc
You can test your MTA setup and configuration using the following command:
echo "Test email from msmtp" | sudo msmtp your_gmail_address@gmail.com
If configured correctly, the MTA sends an email to the specified email address using the Google Mail account you set up earlier.
Lastly, restart the SMART monitor background service so that it picks up the changed configuration files and MTA settings:
sudo systemctl restart smartmontools
The SMART monitor includes a test mode that lets you verify that the whole setup works as expected. To do so, open up the configuration file from before:
sudo nano /etc/smartd.conf
Then, find the lines you added before, and append -M test to each entry. For example:
/dev/drive_identifier -a -o on -S on -s (S/../.././02|L/../../6/03) -m you@example.com -M test
Finally, restart the smartmontools service. It should start up as expected, and you should see a message similar to the following one in your email inbox:
If everything is configured correctly, the service should immediately send a test mail after restarting it.
Do not forget to remove the -M option from the configuration file and restart the service one last time once you have verified that it works as expected:
The final configuration entries should not include the -M test mode option.
Limitations of SMART
SMART is a valuable tool for maintaining the reliability of NAS and long-term backup drives. It cannot guarantee that all failures are detected in advance. For example, an older Google study found that roughly a third of drives fail without any prior SMART warnings. Still, in about two-thirds of cases, SMART was able to flag issues before they resulted in data loss. For these reasons, it’s essential to combine SMART monitoring with RAID redundancy and regular backups to keep important files safe.
Summary
SMART is an essential tool for maintaining the health and reliability of NAS drives. By tracking critical device attributes such as temperature, reallocated sectors, read/write error rates, spin-up time, and power-on hours, SMART can provide early warnings of predictable hardware failures. On Linux systems, this monitoring can be automated, enabling administrators to schedule regular self-tests, track all available SMART attributes, and receive alerts via email when issues arise.
To enable email notifications, a Mail Transfer Agent (MTA) must be configured so that the SMART monitor can dispatch alerts. This ensures that potential problems are flagged before they occur, allowing you to create backups or replace drives.
SMART cannot catch every failure, but it effectively identifies most predictable problems, making it a vital complement to RAID setups and routine backups. By combining automated monitoring, scheduled self-tests, and proactive alerting, users can reduce the risk of unexpected drive failures and protect valuable data in long-term storage environments.