這是一個針對OMV中查詢硬盤休眠狀態(tài)的方法稀颁,理論上適用于所有l(wèi)inux
在OMV中竞漾,可以針對硬盤分別設置休眠:
設置休眠
也可以用命令:
hdparm -S 120 /dev/sdx
設置完成后,怎么檢測或查看是不是生效了呢?這就涉及到如何查詢硬盤狀態(tài)了衬鱼,可以用以下命令查看單塊磁盤:
smartctl -i -n standby /dev/sdb|grep "mode"|awk '{print $4}'
結果
我有兩塊盤,怎么查看呢?
echo `date +%c` && echo -n "/dev/sdb : " && smartctl -i -n standby /dev/sdb|grep "mode"|awk '{print $4}' && echo -n "/dev/sdc : " && smartctl -i -n standby /dev/sdc|grep "mode"|awk '{print $4}'
結果
如果有很多塊呢?上面這種方法就不好了犹菱,所以改進一下:
#!/bin/bash
dsk=`ls /dev/|grep 'sd[a-z]$'`
echo `date +%c`
for i in $dsk;
do
echo -n "/dev/$i : " ;
echo `smartctl -i -n standby /dev/$i|grep "mode"|awk '{print $4}' `;
done
exit
把這個存成ckdisk.sh到一個目錄下,例如/root/code下吮炕,然后chmod +x ckdisk.sh
增加可執(zhí)行權限腊脱。
回到omv界面,找計劃任務龙亲,添加一個:
添加計劃任務
注意路徑要加對陕凹。
保存應用后,點運行即可看到結果:
運行
以下是自動記錄日志的方法補充
補充:如果想自動記錄硬盤休眠狀態(tài)的日志可以按如下方法
- 修改chkdisk.sh為如下內容:
#!/bin/bash
path="/root/code" #這里一定要改成存放的實際路徑鳄炉,crontab比較坑杜耙,不支持相對路徑沒有辦法
echo $path
if [ ! -d "$path/Disks" ];then
mkdir $path/Disks;
fi
dsk=`ls /dev/|grep 'sd[a-z]$'`
for (( t=1;t<6;t++))
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}' `;
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/chkdisk.log
echo -n "/dev/$i : ">>$path/chkdisk.log;
echo $s>>$path/chkdisk.log;
fi
echo $s;
done
sleep 10
done
exit
-
修改計劃任務為每分鐘執(zhí)行:
image.png
然后系統(tǒng)每10秒會檢查一次硬盤狀態(tài)(雖然計劃任務是每分鐘,但程序里已加入每10秒檢測)拂盯,如果硬盤狀態(tài)發(fā)生變化佑女,會自動記錄到與chkdisk.sh同目錄下的chkdisk.log中。狀態(tài)不變則不記錄日志谈竿。