Modern hard disks (from ATA-3 and SCSI-3) provide built-in system called SMART (for Self-Monitoring, Analysis and Reporting Technology).
smartmontools provides two utility programs (smartctl and smartd) to control and monitor storage systems using SMART.
It can be installed in RedHat-like systems using yum (yum install smartmontools).
To get "general" Info like device model number, serial number, firmware version... (e.g. /dev/sda):
smartctl -i /dev/sda
To get Health Status of a device - for instance for predicting its own failure within the next 24 hours (e.g. /dev/sda):
smartctl -H /dev/sda
To get SMART Attributes of a device (e.g. /dev/sda):
smartctl -A /dev/sda
To get SMART Capabilities of a device (e.g. /dev/sda):
smartctl -c /dev/sda
To get error information of a device (e.g. /dev/sda):
smartctl -l error /dev/sda
To get all those information and even more about a device (e.g. /dev/sda):
smartctl -a /dev/sda
The smartctl command allows launching some tests.
For instance to launch a short test:
smartctl -t short /dev/sda
To get progress and result information:
smartctl -l selftest /dev/sda
See smartctl MAN page for further information.