Come configuro Ubuntu per riavviare ogni giorno a una determinata ora?


11

Usando il terminale o un file bash, come posso configurare Ubuntu per riavviare ogni giorno alle (diciamo ad esempio) alle 3 AM?

In altre parole, voglio pianificare un riavvio automatico attraverso il terminale.

Non sono stato in grado di trovare nulla di simile su questo su Google o AskUbuntu e sono abbastanza nuovo su Ubuntu in generale (ho appena ricevuto il mio nuovo Raspberry Pi).

Risposte:


13

Modifica le voci crontab usando il crontab -ecomando (di default questo modificherà l'attuale crontab degli utenti che hanno effettuato l'accesso) e aggiungerà la seguente riga:

0 3 * * * echo $PASSWD | sudo -S reboot
#change $PASSWD with your password

Salvare il file e controllare la nuova voce crontab con crontab -l.

Se vuoi usare solo:

0 3 * * * sudo reboot

come crontab, questo non funziona normalmente e dovresti controllare questo post per vedere come puoi farlo funzionare.

Oppure, aggiungi semplicemente crontab al file crontab dell'utente root che offre il percorso completo per il rebootcomando usando sudo crontab -e:

0 3 * * * /sbin/reboot

Non potresti metterlo nel crontab di root e non preoccuparti troppo delecho $PASSWD
Dan

Non lo sapevo. È un bug di cron o è normale? Voglio dire, se modifichi crontab come root, il lavoro verrà eseguito solo se hai effettuato l'accesso come root? Penso che sia sbagliato. (o dovrebbe essere).
NickTux,

@ RaduRădeanu Questo non è vero. I cronjob di root verranno eseguiti senza essere registrati come root.
OrangeTux,

@OrangeTux Hai ragione, scusa, l'ho detto perché l'ho provato senza dare il percorso completo per il rebootcomando. Altrimenti non funzionerà. Vedi le mie nuove modifiche.
Radu Rădeanu,

@NikTh ho sbagliato, vedi il commento sopra .
Radu Rădeanu,

1

Nota che inserire la tua password in chiaro in un file di testo non è una buona idea, quindi è meglio avere questo lavoro eseguito come root fin dall'inizio. Di solito, piuttosto che modificare il crontab di root tramite il crontabcomando, che lascia le voci in /var/spool/cron/crontabsuna posizione un po 'criptica, preferisco inserirle in modo esplicito /etc/cron.d. Le voci in cron.d vengono eseguite come voci crontab di sistema, vengono trattate come file di configurazione, quindi devono sopravvivere a riavvii, aggiornamenti e upgrade di sistema e puoi specificare esplicitamente l'utente in esecuzione:

echo "0 3 * * * root /sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.d/reboot-at-3-am

Se non hai bisogno di un orario specifico, ma piuttosto, vuoi solo che il sistema si riavvii una volta al giorno, aggiungi un eseguibile o uno script /etc/cron.dailye verrà eseguito automaticamente a un orario prestabilito (6:25 ora di sistema per impostazione predefinita):

echo "/sbin/shutdown -h 5 'System will reboot in 5 minutes'" | sudo tee /etc/cron.daily/reboot-me

Nota che invece di riavviare il sistema senza preavviso, sto impostando un avviso di 5 minuti, quindi se qualcuno ha effettuato l'accesso, hanno la possibilità di salvare il proprio lavoro o addirittura interrompere l'arresto sudo shutdown -c, piuttosto che far tirare il sistema fuori da sotto di loro. È possibile modificarli di conseguenza, se si desidera dare un avviso più ampio (ad esempio, utilizzare shutdown -h 60ed eseguire il comando alle 2:00 AM e dare agli utenti un generoso avviso di 1 ora).

Questo si basa sulla mia esperienza passata; ad un certo punto si sarà effettuato il login a lavorare quando le piste di entrata crontab, e se solo si riavvia senza preavviso, sarai un molto triste panda.


-1

Perché vuoi - o necessità di fare questo? Mentre è piuttosto semplice da fare, c'è quasi sicuramente una soluzione migliore con Linux che non comporta un riavvio. A differenza di Windows, i sistemi operativi basati su Linux non richiedono riavvii per quasi tutto tranne gli aggiornamenti del kernel.

Se spieghi cosa stai cercando di ottenere, possiamo probabilmente aiutarti meglio.


3
Vuole riavviare il computer ogni notte, così si riavvierà
Michael Butler il
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.