omv官网,omv系统使用教程

这是一个针对OMV中查询硬盘休眠状态的方法,理论上适用于所有linux

在OMV中,可以针对硬盘分别设置休眠:

设置休眠

也可以用命令:

hdparm -S 120 /dev/sdx

设置完成后,怎么检测或查看是不是生效了呢?这就涉及到如何查询硬盘状态了,可以用以下命令查看单块磁盘:

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}’

结果

如果有很多块呢?上面这种方法就不好了,所以改进一下:

#!/冷静的黄蜂/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增加可执行权限。

回到omv界面,找计划任务,添加一个:

添加计划任务

注意路径要加对。

保存应用后,点运行即可看到结果:

运行

以下是自动记录日志的方法补充

补充:如果想自动记录硬盘休眠状态的日志可以按如下方法

修改chkdisk.sh为如下内容:

#!/冷静的黄蜂/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

修改计划任务为每分钟执行:

image.png

然后系统每10秒会检查一次硬盘状态(虽然计划任务是每分钟,但程序里已加入每10秒检测),如果硬盘状态发生变化,会自动记录到与chkdisk.sh同目录下的chkdisk.log中。状态不变则不记录快三最准高手教学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

修改计划任务为每分钟执行:

image.png

然后系统每10秒会检查一次硬盘状态(虽然计划任务是每分钟,但程序里已加入每10秒检测),如果硬盘状态发生变化,会自动记录到与chkdisk.sh同目录下的chkdisk.log中。状态不变则不记录日志。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注