搜了一圈论坛,很多人为这个问题所困扰,且一直没有看到解决方法。官方客服的回复也只是帮提交改良计划。
经过我的摸索查找,解决方法其实很简单:
最后定位的罪魁祸首是 fnOS桌面信息插件
,把右上角信息显示插件的 存储空间
、存储读写
取消即可,登录web就不会立即唤醒了;
但是点击 系统设置
仍然会唤醒硬盘,打断休眠(因为系统设置首页含 存储空间信息
),希望官方尽快优化一下(例如用户开启硬盘休眠后,这些信息只显示缓存的信息,每当硬盘被唤醒时,才更新缓存信息)。
另外,强烈建议增加通知功能,且最好支持指定硬盘休眠、唤醒时,可以接收邮件或pushplus通知。(例如:专门存储冷数据的硬盘,休眠、唤醒单独通知)
顺便分享一个休眠检测脚本,SSH登录后运行,自动检测所有硬盘休眠情况
#!/bin/bash
# 功能说明:
# 1. 显示硬盘盘符 + Label + 容量以及硬盘上电状态
# 2. 使用 echo -e + if...elif...else,将 active 显示为红色,standby 显示为绿色
# 3. 在 for 循环中统计 active 和 standby 的数量
# 4. 增加判断非 active/standby 状态的硬盘,并标记为 unknown
# 5. 列出 unknown 状态的硬盘
dsk=$(ls /dev/sd* | grep -Po 'sd(a{2}|[a-z]+)$')
echo "$(date +%c)"
standby=0
active=0
unknown=0
c=0
for i in $dsk; do
echo -e "\n-----------------------"
echo -n "/dev/$i : "
stats=$(smartctl -i -n standby /dev/$i | grep "mode" | awk '{print $4}')
if [[ $stats == STANDBY || $stats == ACTIVE || $stats == IDLE_A ]]; then
for s in $stats; do
if [[ $s == STANDBY ]]; then
echo -e "\033[30;42m STANDBY \033[0m"
((standby++))
else
echo -e "\033[37;41m ACTIVE \033[0m"
((active++))
fi
done
else
echo -e "\033[30;47m UNKNOWN \033[0m"
((unknown++))
list[c]=$i
((c++))
fi
echo "$(lsblk /dev/$i | grep "/srv/dev-disk-by-label-" | awk '{print $7}')"
echo "$(lsblk /dev/$i | grep "/srv/dev-disk-by-label-" | awk '{print $4}')"
done
echo -e "\n\033[37;41m Active \033[0m Disk in Total = $active"
echo -e "\033[30;42m Standby \033[0m Disk in Total = $standby"
echo -e "\033[30;47m Unknown \033[0m Disk in Total = $unknown"
echo -e "Unknown Disk list:"
for ((b = 0; b < c; b++)); do
echo "${list[b]}"
done
echo -e "\n"
exit