关闭Linux服务器并在特定时间自动开启

关闭Linux服务器并在特定时间自动开启

我正在做一项作业,讲师要求我创建一个 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

相关内容