关闭linux服务器并在特定时间自动打开


8

我正在做一个作业,讲师要我创建一个bash脚本以在晚上11点关闭服务器并在早上6点打开服务器。我可以通过使用sudo shutdown -h 23:00它来做到这一点。但是问题是我不知道如何在凌晨6点自动将其打开,我找不到任何可以执行此操作的命令。任何帮助,将不胜感激。


您确定您的作业要求您关闭整个计算机(然后再次打开),还是仅关闭一个服务器进程?显然,物理计算机需要打开才能执行任何操作。
2014年

老实说,我也不知道,我也认为这是不可能的。讲师对作业简介很含糊,也使我很生气。
JLWK 2014年

Answers:


10

首先,您需要检查是否可以使用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今天3分钟。

如果可以,请创建一个/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,键入crontab -e并添加以下行:

0 23 * * * /usr/local/sbin/shutwake

我取决于BIOS时钟设置,请检查/etc/default/rcS是否已设置UTC。
西尔文·皮诺

好吧,我尝试了与您上面写的完全相同的方法。它没有工作:( -Debian 8
巴林特巴氏
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.