请教一下debian能否怎么实现硬盘无读写操作后10分钟关机?
群晖可以很好的实现硬盘无读写10分钟休眠,休眠10分钟关机请教一下debian可以实现吗??先谢谢了 在 Debian 系统中,你可以通过创建一个简单的 shell 脚本和设置 cron 计划任务来实现硬盘在无读写操作 10 分钟后自动关机。以下是具体的操作步骤:
创建一个 shell 脚本,命名为 auto_shutdown.sh,并将其放在 /usr/local/bin/ 目录下:
sudo touch /usr/local/bin/auto_shutdown.sh
sudo chmod +x /usr/local/bin/auto_shutdown.sh
sudo nano /usr/local/bin/auto_shutdown.sh
在 auto_shutdown.sh 脚本中,粘贴以下代码:
#!/bin/bash
# 设置硬盘空闲时间(单位:秒)
IDLE_TIME=$((10*60))
# 获取硬盘设备名,通常是 /dev/sda 或 /dev/nvme0n1 等
DISK_DEVICE="/dev/sda"
# 获取硬盘上次读写的时间
PREV_IO_TIME=$(date +%s)
while true; do
# 获取硬盘当前读写状态
CURRENT_IO=$(awk -v disk_device="$DISK_DEVICE" '$3==disk_device {print $10+$6}' /proc/diskstats)
sleep 5
NEW_IO=$(awk -v disk_device="$DISK_DEVICE" '$3==disk_device {print $10+$6}' /proc/diskstats)
# 检查是否有读写操作
if [ "$NEW_IO" -eq "$CURRENT_IO" ]; then
# 没有读写操作,检查空闲时间是否超过设置的阈值
CURRENT_TIME=$(date +%s)
IDLE_PERIOD=$((CURRENT_TIME - PREV_IO_TIME))
if [ "$IDLE_PERIOD" -ge "$IDLE_TIME" ]; then
# 空闲时间超过阈值,关机
sudo shutdown -h now
exit 0
fi
else
# 有读写操作,重置上次读写时间
PREV_IO_TIME=$(date +%s)
fi
done
保存并关闭文件。
使用 crontab 在系统启动时运行此脚本。运行以下命令:
crontab -e
在打开的编辑器中,添加以下行:
@reboot /usr/local/bin/auto_shutdown.sh
保存并关闭文件。
现在,每次系统启动时,auto_shutdown.sh 脚本将自动运行。脚本会持续监控硬盘的读写操作,如果连续 10 分钟没有任何读写操作,系统将自动关机。请注意,这种方法可能不适用于所有硬盘和系统配置,可能需要根据实际情况进行调整。 大佬厉害,我昨天搜索一天都没找到,你怎么这么会搜索 大佬厉害,我昨天搜索一天都没找到,你怎么这么会搜索 这很明显是GPT的杰作嘛. GPT-4这方面还是挺好用的。 :)
页:
[1]