美文网首页我爱编程ITovm
OMV查询硬盘休眠状态(Linux通用)

OMV查询硬盘休眠状态(Linux通用)

作者: 龙天ivan | 来源:发表于2018-04-12 12:43 被阅读1724次

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

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


设置休眠

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

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增加可执行权限。

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


添加计划任务

注意路径要加对。

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


运行

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


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

  1. 修改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
  1. 修改计划任务为每分钟执行:


    image.png

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

相关文章

  • OMV查询硬盘休眠状态(Linux通用)

    这是一个针对OMV中查询硬盘休眠状态的方法,理论上适用于所有linux 在OMV中,可以针对硬盘分别设置休眠: 设...

  • OMV查询硬盘休眠状态(Linux通用)【加料版】

    前言 一开始unraid转移到openmediavault的时候,就很纠结于omv是否需要给硬盘设置高级电源管理。...

  • armbian/debian/linux 硬盘休眠

    刷了armbian 发现硬盘总是不休眠, 即使没有人在用 $ sudo /sbin/hdparm -C /dev/...

  • deepin如何休眠

    deepin官网休眠这个功能还是很酷很实用的,对于Linux系统,休眠一般就是把内存中的数据写入硬盘(swap文件...

  • 一些常用的 linux 指令(一)

    linux 查看硬盘容量 查询当前目录下前 5 个最大的文件大小信息 查询当前路径下各个文件大小 查询所有硬盘文件...

  • WIN10开启休眠功能

    休眠的好处,唤醒时回复休眠前的状态,且省电休眠该模式,系统会自动将内存中的数据全部转存到硬盘上一个休眠文件中,然后...

  • Deepin休眠

    系统休眠,可以让平时的工作环境保存到硬盘中,以便开机后便可立即进入工作状态. 提醒:分有swap分区的,先验证休眠...

  • Java 线程:Java线程的生命周期

    通用的线程生命周期 五态模型: 初始状态、可运行状态、运行状态、休眠状态、终止状态 初始状态:指的线程已经被创建,...

  • 线程生命周期

    通用的线程生命周期可以有五个状态:初始状态,可运行状态,运行状态,休眠状态和终止状态。 初始状态:线程已经创建,但...

  • proxmox映射硬盘的休眠控制

    映射硬盘的休眠控制虽然有休眠记录,但是用手去摸映射的硬盘(sata0),发现它并没有停转,推测群晖只是停止映射硬盘...

网友评论

    本文标题:OMV查询硬盘休眠状态(Linux通用)

    本文链接:https://www.haomeiwen.com/subject/wgouhftx.html