Cron del riavvio del server giornaliero?


14

Voglio creare un lavoro cron che esegue daiy all'ora assegnata e riavvia il server Ubuntu.

Provo ad aggiungere rebootsolo in cron, ma non funziona, mentre funziona quando provo ad eseguirlo dalla CLI.

Si prega di avvisare, quale comando devo aggiungere in cron, in modo che si riavvii il server ogni giorno a un'ora specifica.


Posso chiederti perché è necessario riavviare un server su base giornaliera? Questa è un'indicazione per me che stai facendo cose sbagliate. Probabilmente.
gertvdijk,

2
@gertvdijk mi sono imbattuto in situazioni in cui è necessario riavviare una macchina regolarmente. Software proprietario che ha una perdita di memoria negativa dopo circa 30 ore di attività, cose del genere.
JRG

1
Server di gioco (tosse) Minecraft (tosse) spesso si rovescia o in qualche modo si rovescia in centinaia di processi.
Kaz Wolfe,

questo post è anche utile askubuntu.com/questions/327015/…
kevin

Se il problema è che alcune applicazioni perdono memoria nel tempo, una soluzione migliore sarebbe semplicemente riavviare quel servizio dell'applicazione.
Soren, un

Risposte:


26

È necessario eseguire il comando seguente:

/sbin/shutdown -r now

con pirviliges di radice. Il modo per farlo è usare il crontab di root, non il crontab dell'utente. A sudoprima del solito comando crontab lo fa:

sudo crontab -e

Suggerimento: è possibile cambiare l'editor standard della shell per cose come crontabe visudocon sudo update-alternatives --config editore quindi selezionare l'editor di propria scelta.

Modificando il crontab dovresti aggiungere la seguente riga al tuo file:

# For more information see the manual pages of crontab(5) and cron(8)
# 
# m h  dom mon dow   command  

@daily root /sbin/shutdown -r now

"@Daily" qui è una scorciatoia per ogni giorno a mezzanotte (equivalente a "0 0 * * *"). A proposito: perché vuoi un riavvio quotidiano?

MODIFICA - vedi https://help.ubuntu.com/community/CronHowto per quanto segue: "I comandi di Crontab sono generalmente memorizzati nel file crontab appartenente al tuo account utente (ed eseguiti con il livello di autorizzazioni dell'utente). Se vuoi eseguire regolarmente un comando che richiede autorizzazioni amministrative, modificare il file crontab di root: sudo crontab -e "

MODIFICA - grazie a @charlesbridge per il suo commento - risposta modificata per includere l'intero percorso


2
Con cron, è sempre più sicuro utilizzare percorsi completi:/sbin/shutdown -r
charlesbridge

1
che cosa fa la radice tra l'impostazione del giorno e il comando? non dovrebbe essere solo @daily / sbin / shutdown -r ora nel cronfile degli utenti root? TIA
Ominus,

3
Il seguente comando ha lo stesso effetto: /sbin/reboot.
Marc Vanhoomissen,
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.