linux下的硬盘检测工具 Smartmontools
1.1 什么是Smartmontools? Smartmontools是一种硬盘检测工具,通过控制和管理硬盘的SMART(SelfMonitoringAnalysisandReportingTechnology,自动检测分析及报告技术)技术来实现的,SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测,当SMART监测并分析出硬盘可能出现问题时会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用,而且SMART技术也不能保证能预报所有可能发生的硬盘故障。SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准,这个标准就是在硬盘上保存一个跟执行情况,可靠程度,读找错误率等属性的表格。所有属性都有一个1byte(大小范围1-253)的标准化值,还包含另一个1byte的关键阶段值,如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。 -------------------------------- 2.1 Smartmontools的使用 1、启动监控进程 #/etc/init.d/smartdstart 启动 smartd: [ 确定 ]------------------------------------------------------ 2、检查硬盘是否支持SMART,1993年以后出厂的硬盘基本上都支持SMART技术,使用如下命令可以来查看: # smartctl -i /dev/sdasmartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce AllenHome page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === DeviceModel:ST3320418AS SerialNumber:9VM1R2WY FirmwareVersion:CC35 UserCapacity:320,072,933,376bytes Deviceis:Notinsmartctldatabase[fordetailsuse:-Pshowall] ATAVersionis:8 ATAStandardis:ATA-8-ACSrevision4 LocalTimeis:SunAug1621:25:182009EDT SMARTsupportis:Available-devicehasSMARTcapability. SMARTsupportis:Enabled 在上面的信息可以看到,该硬盘是支持SMART技术,且当前是开启的。如果SMART support is: Disabled表示SMART未启用,执行如下命令,启动SMART:smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda
--------------------------------
3、检查硬盘健康状态 #smartctl-H/dev/sda smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen Homepageishttp://smartmontools.sourceforge.net/ ===STARTOFREADSMARTDATASECTION=== SMARToverall-healthself-assessmenttestresult:PASSED 请注意result后边的结果:PASSED,这表示硬盘健康状态良好,如果这里显示Failure,那么最好立刻给服务器更换硬盘。SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的,通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间,有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了,千万不要存在侥幸心理。执行如下命令可以看到详细的参数: #smartctl-A/dev/sda smartctlversion5.38[i686-redhat-linux-gnu]Copyright(C)2002-8BruceAllen Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA SECTION === SMARTAttributesDataStructurerevisionnumber:10 VendorSpecificSMARTAttributeswithThresholds: ID#ATTRIBUTE_NAMEFLAGVALUEWORSTTHRESHTYPEUPDATEDWHEN_FAILEDRAW_VALUE 1Raw_Read_Error_Rate0x000f109100006Pre-failAlways-21618934 3Spin_Up_Time0x0003098098000Pre-failAlways-0 4Start_Stop_Count0x0032100100020Old_ageAlways-12 5Reallocated_Sector_Ct0x0033100100036Pre-failAlways-0 7Seek_Error_Rate0x000f100253030Pre-failAlways-116923 9Power_On_Hours0x0032100100000Old_ageAlways-58 10Spin_Retry_Count0x0013100100097Pre-failAlways-0 12Power_Cycle_Count0x0032100100020Old_ageAlways-6 183Unknown_Attribute0x0032100100000Old_ageAlways-0 184Unknown_Attribute0x0032100100099Old_ageAlways-0 187Reported_Uncorrect0x0032100100000Old_ageAlways-0 188Unknown_Attribute0x0032100099000Old_ageAlways-4 189High_Fly_Writes0x003a100100000Old_ageAlways-0 190Airflow_Temperature_Cel0x0022057056045Old_ageAlways-43(LifetimeMin/Max29/44) 194Temperature_Celsius0x0022043044000Old_ageAlways-43(02500) 195Hardware_ECC_Recovered0x001a048047000Old_ageAlways-21618934 197Current_Pending_Sector0x0012100100000Old_ageAlways-0 198Offline_Uncorrectable0x0010100100000Old_ageOffline-0 199UDMA_CRC_Error_Count0x003e200200000Old_ageAlways-0 240Head_Flying_Hours0x0000100253000Old_ageOffline-226628244340804 241Unknown_Attribute0x0000100253000Old_ageOffline-30093291 242 Unknown_Attribute 0x0000 100 253 000 Old_age Offline - 2423580FLAG是标记,标准数值(VALUE)应当小于或等於关键值(THRESH)。WHEN_FAILED 代表错误信息,上面显示的WHEN_FAILED纵行是空行,说明硬盘没有故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有比较大的坏道。 ------------------------------------------------------------------ 4、对硬盘进行检测手工对硬盘进行测试的方法有以下四种: smartctl-tshort<device>后台检测硬盘,消耗时间短 smartctl-tlong<device>后台检测硬盘,消耗时间长 smartctl-C-tshort<device>前台检测硬盘,消耗时间短 smartctl-C-tlong<device>前台检测硬盘,消耗时间长 例如,在后台对硬盘进行详细的检查,命令如下: #smartctl-tlong/dev/sda smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen Home page ishttp://smartmontools.sourceforge.net/ ===STARTOFOFFLINEIMMEDIATEANDSELF-TESTSECTION=== Sendingcommand:"ExecuteSMARTExtendedself-testroutineimmediatelyinoff-linemode". Drivecommand"ExecuteSMARTExtendedself-testroutineimmediatelyinoff-linemode"successful. Testinghasbegun. Pleasewait54minutesfortesttocomplete. TestwillcompleteafterMonSep1703:53:322007 Usesmartctl-Xtoaborttest. 上面的信息显示54分钟后将完成检查,同时可以使用 smartctl -X 终止检查。终止硬盘检查命令的使用方法是: #smartctl-X/dev/sda smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen Homepageishttp://smartmontools.sourceforge.net/ ===STARTOFOFFLINEIMMEDIATEANDSELF-TESTSECTION=== Sendingcommand:"AbortSMARToff-linemodeself-testroutine". Self-testing aborted!--------------------------------------------------- 5、查看硬盘日志 使用“smartctl -l logtype <device>”可以查看硬盘的日志,日志又分为多种类型,如selftest、error等等。 例如查看硬盘检测的日志,如下: #smartctl-lselftest/dev/sda smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen Home page ishttp://smartmontools.sourceforge.net/ ===STARTOFREADSMARTDATASECTION=== SMARTSelf-testlogstructurerevisionnumber1 NumTest_DescriptionStatusRemainingLifeTime(hours)LBA_of_first_error #1ExtendedofflineAbortedbyhost90%4365- #2ExtendedofflineCompletedwithouterror00%4247- #3ShortofflineAbortedbyhost30%4246- #4ShortofflineAbortedbyhost10%4246- # 5 Extended offline Completed without error 00% 4229 -查看硬盘错误日志: #smartctl-lerror/dev/sda smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen Home page ishttp://smartmontools.sourceforge.net/ ===STARTOFREADSMARTDATASECTION=== SMARTErrorLogVersion:1 No Errors Logged说明没有错误日志 |
我主要是要看通电时间
所以只用了
smartctl-A/dev/sda
其中
Power_On_Hours就是我要的数据