我正在做一项作业,讲师要求我创建一个 bash 脚本,在晚上 11 点关闭服务器并在早上 6 点打开它。我可以使用sudo shutdown -h 23:00
并且它有效。但问题是我不知道如何在早上 6 点自动打开它,我找不到任何可以做到这一点的命令。任何帮助都将不胜感激。
答案1
首先你需要检查是否可以使用RTC唤醒警报唤醒系统:
sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sudo sh -c "echo `date '+%s' -d '+ 3 minutes'` > /sys/class/rtc/rtc0/wakealarm"
cat /sys/class/rtc/rtc0/wakealarm
现在检查:
cat /proc/driver/rtc
这应该返回一个参数列表。检查alrm_time
是 3 分钟后的未来时间, 是alrm_date
今天的时间。
如果运行正常,创建一个/usr/local/sbin/shutwake
脚本:
#!/bin/bash
sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
sh -c "echo `date '+%s' -d '+ 7 hours'` > /sys/class/rtc/rtc0/wakealarm"
shutdown -h now
最后编辑您的用户定时任务,输入crontab -e
并添加以下行:
0 23 * * * /usr/local/sbin/shutwake