群晖 硬盘休眠检测 也适用于Linux

2 篇文章 0 订阅
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系统中添加任务计划
DSM系统中添加硬盘检测的任务计划
在这里插入图片描述
切记一定要将shell文件放到SSD或者引导U盘上
如果放在HDD上的话,这块硬盘就永世不得休眠了…

查看硬盘情况

path=/tmp/hdd_status_wy这是我自己设定的位置
shell会在该目录下新建一个Disks文件夹用于存放log文件
直接cat /tmp/hdd_status_wy/Disks/chkdisk.log即可
在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值