Hello,

please do you know any clever ways to check hard drives in Linux and discover its health/status/possible errors?


So far i found command:

Code:
smartctl -a /dev/sda
Example output: (takes around 15 seconds?)

Code:
[root@* ~]# smartctl -a /dev/sda
smartctl 5.42 2011-10-20 r3458 [x86_64-linux-2.6.18-371.3.1.el5.028stab110.1] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net


=== START OF INFORMATION SECTION ===
Device Model:     TOSHIBA DT01ACA200
Serial Number:    Z3AYMBBKS
LU WWN Device Id: 5 000039 ff3e9a678
Firmware Version: MX4OABB0
User Capacity:    2,000,398,934,016 bytes [2.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Fri Apr 11 18:43:19 2014 EDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled


=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED


General SMART Values:
Offline data collection status:  (0x84) Offline data collection activity
                                        was suspended by an interrupting command from host.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever
                                        been run.
Total time to complete Offline
data collection:                (13961) seconds.
Offline data collection
capabilities:                    (0x5b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        No Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine
recommended polling time:        (   1) minutes.
Extended self-test routine
recommended polling time:        ( 233) minutes.
SCT capabilities:              (0x003d) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.


SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   016    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   140   140   054    Pre-fail  Offline      -       68
  3 Spin_Up_Time            0x0007   100   100   024    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0012   100   100   000    Old_age   Always       -       3
  5 Reallocated_Sector_Ct   0x0033   100   100   005    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   100   100   067    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   124   124   020    Pre-fail  Offline      -       33
  9 Power_On_Hours          0x0012   100   100   000    Old_age   Always       -       836
 10 Spin_Retry_Count        0x0013   100   100   060    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       3
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       5
193 Load_Cycle_Count        0x0012   100   100   000    Old_age   Always       -       5
194 Temperature_Celsius     0x0002   214   214   000    Old_age   Always       -       28 (Min/Max 21/30)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0022   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0008   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x000a   200   200   000    Old_age   Always       -       0


SMART Error Log Version: 1
No Errors Logged


SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]




SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
To discover what particular values mean one can open this page and use Ctrl+F - https://en.wikipedia.org/wiki/Self-Monitoring,_Analysis,_and_Reporting_Technology#Kno wn_ATA_S.M.A.R.T._attributes

Legend/Explanations:
pre-fail - means that certain attribute is at or below manufactures expectations.
Old_age - describing a parameter type for some of the named attributes, which indicates it is expected to change with age; Old_Age is a definition of the SW been used
Reallocated_Sector_Ct - count of bad sectors, so if this value is high, it can be warning sign
Throughput_Performance - If the value of this attribute is decreasing there is a high probability that there is a problem with the disk.

Quick test with output:
Code:
smartctl -t short /dev/sda;echo "----- Sleeping 2 minutes -----";sleep 120;smartctl -a /dev/sda
Automatic checking & mail when HDD fails:

A)
1. open: vi /etc/smartd.conf

2. find first line with "@" (/@ + Enter) and change to your email and uncomment (remove #), then save (:wq + enter)

B)
modiffy your email and run command (on your risk):
Code:
find /etc -name 'smartd.conf' -type f -print0 | xargs -0 sed -i 's|#/dev/hdc -a -I 194 -W 4,45,55 -R 5 -m [email protected]|/dev/hdc -a -I 194 -W 4,45,55 -R 5 -m [email protected]|g'
this smartd.conf based check i did not veriffied that works /dev/hds dont exist
=====

HDD health checking scripts:
http://nixcraft.com/showthread.php/16989-Script-to-execute-smartctl-commnad-every-night-and-mail-the-list-of-systems?p=33371&viewfull=1#post33371
http://hotfortech.wikispaces.com/HD+monitor+script
http://rhau.se/2012/11/08/disk-check-script/
https://help.ubuntu.com/community/Smartmontools (on the bottom)
http://csidiropoulos.wordpress.com/2013/12/13/bash-script-to-monitor-hard-disk-health-and-send-an-e-mail-on-error/