chiudere il server Linux e accenderlo automaticamente a un orario specifico


8

Sto avendo un incarico in cui il docente mi sta chiedendo di creare uno script bash per spegnere un server alle 23:00 e accenderlo alle 6:00. Sono in grado di farlo utilizzando sudo shutdown -h 23:00e funziona. Ma il problema è che non ho idea di come accenderlo automaticamente alle 6 del mattino, non sono riuscito a trovare alcun comando che potesse farlo. Qualsiasi aiuto sarebbe apprezzato.


Sei sicuro che il tuo compito ti chieda di spegnere l'intera macchina (e riaccenderla) o solo un processo del server? Ovviamente, la macchina fisica deve essere accesa per fare qualsiasi cosa.
— Jos

Ad essere sincero, non ne ho idea, pensavo anche che sarebbe stato impossibile. Il docente è molto vago sul mandato e mi sta facendo impazzire.
— JLWK,

Risposte:


10

Innanzitutto è necessario verificare se è possibile utilizzare il sistema di sveglia RTC per riattivare il sistema:

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

Ora controlla:

cat /proc/driver/rtc

Questo dovrebbe restituire un elenco di parametri. Controlla i alrm_time3 minuti nel futuro e alrm_dateè oggi.

Se funziona bene, crea uno /usr/local/sbin/shutwakescript:

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

Infine modifica il tuo crontab utente , digita crontab -ee aggiungi la seguente riga:

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

Dipendo dalle impostazioni dell'orologio BIOS, controlla /etc/default/rcSse UTC è impostato o meno.
— Sylvain Pineau,

Bene, ho provato esattamente lo stesso di quello che hai scritto sopra. Non ha funzionato :(. -Debian 8
— Bálint Pap
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.