本发明涉及服务器硬盘检测领域,更具体地说,涉及一种linux下服务器硬盘使用时间检测方法及装置。
背景技术
硬盘是服务器基本的大容量存储设备,主要是用于提供服务器运算时所需信息,并存储服务器系统所有的程序和数据文件。对于硬盘来说,使用时间是影响服务器硬盘寿命和性能的一个重要因素。
每一块服务器硬盘出厂之前都是经过检测的,检测过程中会对硬盘进行了短时间的使用。但是使用时间是有严格要求的,必须控制在一定时间之内。如何保证硬盘在检测过程中的使用时间不超过设定时间,是一个必须考虑的问题。
目前,一般通过手动检测的方式挨个查看服务器中硬盘的使用时间,当发现有接近规定时间的硬盘,就暂停使用,并更换新盘测试。每隔一段时间挨个硬盘手动检查一遍,效率极低,且容易出现差错。
技术实现要素:
针对以上缺点,本发明提出了一种linux下服务器硬盘使用时间检测方法及装置,可以在服务器运行过程中,每间隔一定时间依次扫描机器中各个硬盘的使用时间。
本发明实施例提供了一种linux下服务器硬盘使用时间检测方法,所述的方法包括:
s1:使用linux自带工具smartctl获取硬盘信息;
s2:通过关键词捕捉使用时间的信息。
进一步的,所述的方法还包括:
s3:将获取的硬盘使用时间同设定值进行比对,并反馈检测结果。
进一步的,步骤s3中,所述的设定值包括:
第一阈值,所述的第一阈值用于判断硬盘是否处于危险状态,当获取的使用时间低于第一阈值时,说明硬盘处于安全状态;当获取的使用时间高于或等于第一阈值时,说明硬盘处于危险状态,发出报警提示。
进一步的,步骤s3中,所述的设定值还包括:
第二阈值,所述的第二阈值用于判断硬盘的危险等级,当获取的使用时间高于第一阈值且小于第二阈值时,说明硬盘的危险程度较低,发出报警提示的频率较低;当获取的使用时间高于或等于第二阈值时,说明硬盘处于高度危险状态,发出报警提示的频率较高。
进一步的,所述的方法还包括:
s4:根据预设的时间间隔,重复步骤s1-s3。
本发明实施例还提供了一种linux下服务器硬盘使用时间检测装置,所述的装置包括:
第一采集模块,用于获取硬盘信息;
第二采集模块,用于从硬盘信息中获取硬盘使用时间信息。
进一步的,所述的装置还包括:
判断模块,用于根据获取的硬盘使用时间,同设定值进行比对,并反馈检测结果。
进一步的,所述的判断模块包括:
设置模块,用于设置判断硬盘危险状态的第一阈值;
比较模块,用于比较第一阈值与采集到的使用时间;
报警模块,用于根据比较结果发出报警提示。
进一步的,所述的设置模块还用于设置判断硬盘危险等级的第二阈值。
进一步的,所述的装置还包括:
计时模块,用于设定时间间隔并进行计时;
控制模块,用于在计时完成后,调用第一采集模块、第二采集模块、判断模块执行硬盘检测。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、使用linux自带工具smartctl获取硬盘信息,并通过关键词power_on_hours捕捉使用时间的信息,能够快速准确的实现对硬盘的检测,大大提高了检测效率。
2、通过设定第一阈值,可以有效判断硬盘的危险状态,及时实现对处于危险状态硬盘的报警提示。同时,还设置了第二阈值,根据危险等级的不同,调整报警提示的频次。
3、通过预设时间间隔,实现对硬盘的不间断遍历检测,确保硬盘使用时间一直处于受控状态,提高系统的稳定性。
附图说明
图1是本发明实施例1的方法流程图;
图2是本发明实施例1的装置原理图;
图3是本发明实施例2的方法流程图;
图4是本发明实施例2的装置原理图;
图5是本发明实施例3的方法流程图;
图6是本发明实施例3的装置原理图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例1
如图1所示,本发明实施例1提供了一种linux下服务器硬盘使用时间检测方法,所述的方法包括:
s1:使用linux自带工具smartctl获取硬盘信息。例如:smartctl–a/dev/sda可以获取关于硬盘sda的各种信息。
s2:通过关键词捕捉使用时间的信息。例如,关键词power_on_hours可以捕捉到关于使用时间的信息,实际执行的代码为:smartctl-a/dev/sd${hd}|awk'/power_on_hours/{print$nf}'。
如图2所示,根据图1的方法,本发明实施例1还提供了一种linux下服务器硬盘使用时间检测装置,所述的装置包括:第一采集模块,用于获取硬盘信息;第二采集模块,用于从硬盘信息中获取硬盘使用时间信息。
实施例2
如图3所示,本发明实施例2提供了一种linux下服务器硬盘使用时间检测方法,所述的方法包括:
s1:使用linux自带工具smartctl获取硬盘信息。例如:smartctl–a/dev/sda可以获取关于硬盘sda的各种信息。
s2:通过关键词捕捉使用时间的信息。例如,关键词power_on_hours可以捕捉到关于使用时间的信息,实际执行的代码为:smartctl-a/dev/sd${hd}|awk'/power_on_hours/{print$nf}'。
s3:将获取的硬盘使用时间同设定值进行比对,并反馈检测结果。
步骤s3中,所述的设定值包括第一阈值,所述的第一阈值用于判断硬盘是否处于危险状态,当获取的使用时间低于第一阈值时,说明硬盘处于安全状态;当获取的使用时间高于或等于第一阈值时,说明硬盘处于危险状态,发出报警提示。
例如,设定第一阈值为900小时,当使用时间小于900小时时,无需报警提醒;当使用时间大于等于900小时时,每隔20s输出一次硬盘使用时间危险警告。
此外,步骤s3中,所述的设定值还包括第二阈值,所述的第二阈值用于判断硬盘的危险等级,当获取的使用时间高于第一阈值且小于第二阈值时,说明硬盘的危险程度较低,发出报警提示的频率较低;当获取的使用时间高于或等于第二阈值时,说明硬盘处于高度危险状态,发出报警提示的频率较高。
例如,设定第一阈值为900小时,第二阈值为1000小时,当使用时间小于900小时时,无需报警提醒;当使用时间大于等于900小于1000小时时,每隔20s输出一次硬盘使用时间危险警告"$hdharddiskuse--------danger!";当使用时间大于等于1000小时时,每间隔20s输出硬盘使用时间超时警告"$hdharddiskusetimeout"。
上述例子中,输出警告的频率都是20s一次,区别在于警告的内容不同,在实际执行时,也可以改编输出警告的频率,比如当使用时间大于等于1000小时时,每隔10s输出一次警告。
此外,还需要注意的是,虽然本申请只是注明了一个第二阈值,但是为了更精确的定义硬盘的危险等级,可以设定第三阈值、第四阈值等更多的阈值,从而对危险等级进行更为细致的划分。
如图4所示,根据图3的方法,本发明实施例2还提供了一种linux下服务器硬盘使用时间检测装置,所述的装置包括:第一采集模块,用于获取硬盘信息;第二采集模块,用于从硬盘信息中获取硬盘使用时间信息;判断模块,用于根据获取的硬盘使用时间,同设定值进行比对,并反馈检测结果。
其中,所述的判断模块包括:设置模块,用于设置判断硬盘危险状态的第一阈值,以及设置判断硬盘危险等级的第二阈值;比较模块,用于比较第一阈值与采集到的使用时间;报警模块,用于根据比较结果发出报警提示。
实施例3
如图5所示,本发明实施例3提供了一种linux下服务器硬盘使用时间检测方法,所述的方法包括:
s1:使用linux自带工具smartctl获取硬盘信息。例如:smartctl–a/dev/sda可以获取关于硬盘sda的各种信息。
s2:通过关键词捕捉使用时间的信息。例如,关键词power_on_hours可以捕捉到关于使用时间的信息,实际执行的代码为:smartctl-a/dev/sd${hd}|awk'/power_on_hours/{print$nf}'。
s3:将获取的硬盘使用时间同设定值进行比对,并反馈检测结果。
步骤s3中,所述的设定值包括第一阈值,所述的第一阈值用于判断硬盘是否处于危险状态,当获取的使用时间低于第一阈值时,说明硬盘处于安全状态;当获取的使用时间高于或等于第一阈值时,说明硬盘处于危险状态,发出报警提示。
例如,设定第一阈值为900小时,当使用时间小于900小时时,无需报警提醒;当使用时间大于等于900小时时,每隔20s输出一次硬盘使用时间危险警告。
此外,步骤s3中,所述的设定值还包括第二阈值,所述的第二阈值用于判断硬盘的危险等级,当获取的使用时间高于第一阈值且小于第二阈值时,说明硬盘的危险程度较低,发出报警提示的频率较低;当获取的使用时间高于或等于第二阈值时,说明硬盘处于高度危险状态,发出报警提示的频率较高。
例如,设定第一阈值为900小时,第二阈值为1000小时,当使用时间小于900小时时,无需报警提醒;当使用时间大于等于900小于1000小时时,每隔20s输出一次硬盘使用时间危险警告"$hdharddiskuse--------danger!";当使用时间大于等于1000小时时,每间隔20s输出硬盘使用时间超时警告"$hdharddiskusetimeout"。
上述例子中,输出警告的频率都是20s一次,区别在于警告的内容不同,在实际执行时,也可以改编输出警告的频率,比如当使用时间大于等于1000小时时,每隔10s输出一次警告。
此外,还需要注意的是,虽然本申请只是注明了一个第二阈值,但是为了更精确的定义硬盘的危险等级,可以设定第三阈值、第四阈值等更多的阈值,从而对危险等级进行更为细致的划分。
s4:根据预设的时间间隔,重复步骤s1-s3。该步骤设置了一个循环,针对不同的硬盘,每间隔3600s依次运行所设计的逻辑函数poweron_scan,从而实现不断进行硬盘使用时间的扫描以及对比检测。
如图6所示,根据图5的方法,本发明实施例3还提供了一种linux下服务器硬盘使用时间检测装置,所述的装置包括:第一采集模块,用于获取硬盘信息;第二采集模块,用于从硬盘信息中获取硬盘使用时间信息;判断模块,用于根据获取的硬盘使用时间,同设定值进行比对,并反馈检测结果;计时模块,用于设定时间间隔并进行计时;控制模块,用于在计时完成后,调用第一采集模块、第二采集模块、判断模块执行硬盘检测。
其中,所述的判断模块包括:设置模块,用于设置判断硬盘危险状态的第一阈值,以及设置判断硬盘危险等级的第二阈值;比较模块,用于比较第一阈值与采集到的使用时间;报警模块,用于根据比较结果发出报警提示。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。