Crontab root non in esecuzione


10

Per qualche ragione, il mio crontab di root non sembra funzionare.

Prova a riavviare il dispositivo ogni notte a mezzanotte.

Dovrebbe essere il seguente come root:

crontab -e

Quindi aggiungere:

0 0 * * * /sbin/shutdown -r now

Quando provo ad usare alcuni valori per chiudere l'ora corrente, non succede nulla. Ho installato NTP e verificato che il fuso orario sia corretto. Sto anche specificando utilizzando l'orologio a 24 ore. Ad esempio, per provare subito questa linea (17:35) provo a inserire quanto segue:

36 17 * * * /sbin/shutdown -r now

Ho controllato l'ora con la data -R. Il tempo di esecuzione di crontab va e viene e il sistema non si riavvia. Cosa mi sto perdendo qui?


Solo per essere sicuro, stai chiudendo il crontab dopo averlo modificato, giusto? Inoltre, come hai "eseguito come root"? Qual è l'output di sudo crontab -l | grep -v '#'?
terdon,

Perché questo è etichettato debian ? Se si tratta di Debian e non di Ubuntu, si prega di chiedere su Unix e Linux .
muru,

Perché debian è al centro di Ubuntu, credo.
Atomiklan,

Risposte:


11

Ho tre suggerimenti per te.

  1. Invoca il crontab con crontab -e -u root

  2. Assicurati di avere una riga vuota alla fine del file cronjob, il che significa che ogni riga termina con una nuova riga.

  3. Potrebbe essere necessario reindirizzare l'output su devnull: shutdown -r now > /dev/null

Ecco due utili pagine Web per cronjobs:

Tester CRON

Generatore CRON

Puoi anche gestire i cronjob in modo pulito con webmin .

A parte questo, hai almeno altri due modi per riavviare il computer a mezzanotte.

Uno è quello di eseguire il comando shutdown come script automaticamente all'accesso ma con tempo specifico come parametro anziché "ora":

shutdown -r 00:00

Tuttavia, questo produrrà un messaggio di trasmissione del prossimo arresto ad ogni accesso (potrebbe non essere affatto una brutta cosa). Bene, puoi anche farlo funzionare all'avvio aggiungendo lo script in init.d, ma restituendo comunque il messaggio.

Un altro è usare il atcomando:

at 0am

Immettere il comando shutdown -r nowe salvarlo con ctrl + d oppure eseguire uno script per il comando ed eseguire:

at -f restart_script.sh 0am

Spero che questi ti aiutino a ottenere il risultato desiderato.


La soluzione consisteva nell'output in dev null. Mi chiedo perché?
Atomiklan,

È perché cron job ha un suo ambiente che non ha un sistema di input / output standard che ti aspetteresti e il processo fallisce perché sta provando a trasmettere i messaggi in una pipe di output mancante. Cron job è in realtà molto diverso rispetto all'esecuzione di alcuni comandi nel terminale come qualsiasi altro utente. Sono contento di sapere che dopo tutto hai funzionato.
Ahti Komu,

0

I lavori di System Cron sono elencati nel file / etc / crontab. Pertanto, la modifica diretta di questo file ti aiuterà a eseguire il comando reboot come root.

perciò,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

assicurati di controllare il file di registro Cron dopo aver modificato il crontab in quanto ti farà sapere se il cron è stato installato correttamente.

L'ho provato e ha funzionato per me. Riavviato il mio sistema alle 20:23

In bocca al lupo!


-3

36 17 * * * ecc.

36 17 non è un modo per specificare il momento giusto nel tuo cron.

controlla tramite il comando data per vedere se il tuo sistema funziona nell'ora degli Stati Uniti o dell'Europa

usa 17 36 se europ time e se il tuo sistema usa 24 H time o 5 36 se il tuo sistema usa US TIME e 12 H time


Non vero! Cron non utilizza il formato orario 12 ore e il formato è sempre mm hh GG MM MM WD.
Ahti Komu,

Si prega di leggere l'intero post la prossima volta.
Atomiklan,
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.