前言:
DIY的NAS对比成品NAS有性价比高,个人定制化较好等优势,包括我在内的追求性价比的(穷鬼)会被吸引。但是成品NAS也会有很多的优势,例如风扇会随着温度调整,在散热性能噪音之间得到一个比较好的平衡。笔者之前用过QNAP的TS551,硬盘不转的时候是一个安静;目前自己DIY的NAS呢,用的unraid,没法做到自动温度调整(好像有一部分的unraid可以用插件实现,但是我的主板不行,提示占不到转速控制器),那就只能DIY了。
对于NAS来说,最终要的就是硬盘的温度,那么第一步,就是在unraid里面,怎么知道目前的硬盘状态。
一些网上找到的实现方式:
其实UNRAID里面已经装了smartctl,我估计系统默认的获取硬盘的方式就是调用他而来的。python下有pysmart包,实际上它也调用了smartctl,但是我发现这个包有个问题,一旦查询硬盘温度的时候,他会唤醒全部的硬盘,这是我显然希望避免的(7个硬盘,唤醒了功率能上100w,待机21W,定期查询温度=永远无法休眠)。
所以本文用smartctl来操作,读取硬盘的状态。
实现方式:
主要的实现方式是通过python的os库的popen来执行命令行,并将返回的信息进行处理。
1、第一次执行的时候,查询全部硬盘的状态,获取硬盘总数,并知道每个硬盘的具体路径。执行smartctl --scan
root@ur:~# smartctl --scan
/dev/sdb -d scsi # /dev/sdb, SCSI device
/dev/sdc

&spm=1001.2101.3001.5002&articleId=136507196&d=1&t=3&u=130275af2a0f4e4383ac9ff4a48355b9)
1905

被折叠的 条评论
为什么被折叠?



