выключите сервер Linux и включите автоматически в определенное время

8

У меня есть задание, по которому лектор просит меня создать скрипт bash, чтобы выключить сервер в 11 вечера и включить его в 6 утра. Я могу сделать это с помощью, sudo shutdown -h 23:00и это работает. Но проблема в том, что я понятия не имею, как включить его автоматически в 6 утра, я не смог найти ни одной команды, которая могла бы сделать это. Любая помощь будет оценена.

JLWK
источник
Вы уверены, что ваше задание просит выключить всю машину (и снова включить) или только один процесс сервера? Очевидно, что физическая машина должна быть включена, чтобы делать что-либо.
Йос
Если честно, я тоже понятия не имею, я тоже думал, что это будет невозможно. Лектор очень расплывчат в задании, и это сводит меня с ума.
JLWK

Ответы:

10

Сначала вам нужно проверить, можете ли вы использовать Rake Wakealarm для пробуждения вашей системы:

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 , введите crontab -eи добавьте следующую строку:

0 23 * * * /usr/local/sbin/shutwake
Сильвен Пино
источник
Я зависит от настроек часов BIOS, проверьте, установлен /etc/default/rcSли UTC или нет.
Сильвен Пино
Ну, я попробовал точно то же самое, что вы написали выше. Это не сработало :(. -Дебиан 8
Балинт Пап