Linux用户请确保系统中有hdparm
这一软件包
Openmediavault、Proxmox-VE以及群晖的DSM都是自带的
硬盘状态检测 shell 代码
群晖日志中心看不见硬盘休眠日志,也不能实时监测硬盘状态
不休眠还是很耗电的,7x24小时对普通硬盘也不是很好
主要还是噪音太大
于是需要写个脚本检查一下
使用文本编辑器,复制下面的代码,另存为sh文件
然后使用终端赋予执行权限:chmod +x ./hdd.sh
#!/bin/bash
path=/tmp/hdd_status_wy # 放在内存里,防止写入而唤醒硬盘
echo $path
mkdir -p $path
if [ ! -d "$path/Disks" ];then
mkdir $path/Disks;
fi
dsk=`ls /dev/|grep 'sd[a-z]$'` # 硬盘一般是sda sdb sdc以此类推
for t in {1..12}
do
echo `date +%c`
for i in $dsk
do
echo -n "/dev/$i : "
# s=`smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' ` # 正儿八经的Linux系统可以用这个,也可以用下面那个
s=` hdparm -C /dev/$i|grep "drive state is:" |awk '{print $4}'|awk -F "/" '{print $1}'`
#群晖必须用这一条,因为使用smartd查看HDD的状态可能会提示该设备未打开smart支持,但是实际上是能够在DSM的存储空间管理员中看到相应磁盘的smart信息的,应该是DSM自带的smartctl工具有问题
if [[ -f "$path/Disks/$i.status" ]];then
st=`cat $path/Disks/$i.status`
else
st=''
touch $path/Disks/$i.status
fi
echo $s>$path/Disks/$i.status
if [[ $s != $st ]];then
echo `date +%c`>>$path/Disks/chkdisk.log
echo -n "/dev/$i : ">>$path/Disks/chkdisk.log
echo $s>>$path/Disks/chkdisk.log
fi
echo $s
done
sleep 5
done
exit
运行效果
Tue 10 Nov 2020 08:47:12 PM CST
/dev/sda : active
/dev/sdc : active
/dev/sdd : active
/dev/sdf : active
DSM系统中添加任务计划
切记一定要将shell文件放到SSD或者引导U盘上
如果放在HDD上的话,这块硬盘就永世不得休眠了…
查看硬盘情况
path=/tmp/hdd_status_wy
这是我自己设定的位置
shell会在该目录下新建一个Disks
文件夹用于存放log文件
直接cat /tmp/hdd_status_wy/Disks/chkdisk.log
即可