zamknij serwer Linux i włącz się automatycznie o określonej godzinie

8

Mam zadanie, w którym wykładowca prosi mnie o utworzenie skryptu bash, aby zamknąć serwer o 23:00 i włączyć go o 6 rano. Jestem w stanie to zrobić za pomocą sudo shutdown -h 23:00i działa. Ale problem polega na tym, że nie mam pojęcia, jak włączyć go automatycznie o 6 rano, nie mogłem znaleźć żadnych poleceń, które mogłyby to zrobić. Każda pomoc będzie mile widziana.

JLWK
źródło
Czy na pewno Twoje zadanie wymaga wyłączenia całego komputera (i ponownego włączenia) lub tylko jednego procesu serwera? Oczywiście fizyczna maszyna musi być włączona, aby cokolwiek zrobić.
Jos
Szczerze mówiąc, nie mam też pojęcia, myślałem też, że to niemożliwe. Wykładowca bardzo niejasno wypowiada się na temat zadania, a także doprowadza mnie do szału.
JLWK

Odpowiedzi:

10

Najpierw musisz sprawdzić, czy możesz użyć budzika RTC, aby obudzić swój system:

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

Teraz sprawdź:

cat /proc/driver/rtc

Powinno to zwrócić listę parametrów. Sprawdź, czy alrm_timeminą 3 minuty i czy alrm_datejest dzisiaj.

Jeśli działa dobrze, utwórz /usr/local/sbin/shutwakeskrypt:

#!/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

Na koniec edytuj crontab użytkownika , wpisz crontab -ei dodaj następujący wiersz:

0 23 * * * /usr/local/sbin/shutwake
Sylvain Pineau
źródło
Zależy od ustawień zegara BIOS, sprawdź, /etc/default/rcSczy UTC jest ustawiony, czy nie.
Sylvain Pineau
Próbowałem dokładnie tego samego, co napisałeś powyżej. Nie zadziałało :(. -Debian 8
Bálint Pap