Esecuzione di uno script ogni giorno utilizzando un cronjob


9

Ho bisogno del codice esatto che userei perché non sono in grado di capirlo. Uso crontab -eper impostare un lavoro cron ma quando lo salvo, non funziona mai. Sto anche solo cercando di eseguire un file chiamato newmail.shdall'utente root.


Hai trovato la risposta alla tua domanda?
Bendaf,

Risposte:


10

Se desideri che l'attività venga eseguita ogni giorno alle 15:17, utilizzeresti:

17 15 * * * root newmail.sh

Questo dice "esegui newmail.sh come root ogni giorno della settimana, ogni giorno del mese, ogni mese alle 15:17".

minuto ora dom mese utente dow cmd

minuto: controlla il minuto dell'ora in cui verrà eseguito il comando, compreso tra '0' e '59'

hour - Controlla l'ora su cui verrà eseguito il comando ed è specificato nell'orologio delle 24 ore, i valori devono essere compresi tra 0 e 23 (0 è mezzanotte)

dom - Questo è il giorno del mese in cui si desidera eseguire il comando, ad es. per eseguire un comando il 19 di ogni mese, il dom sarebbe 19.

mese Questo è il mese in cui verrà eseguito un comando specificato, può essere specificato numericamente (0-12) o come nome del mese (ad es. maggio)

dow - Questo è il giorno della settimana in cui si desidera eseguire un comando, può anche essere numerico (0-7) o come nome del giorno (ad es. sole).

utente - Questo è l'utente che esegue il comando.

cmd - Questo è il comando che si desidera eseguire. Questo campo può contenere più parole o spazi.

da: http://www.unixgeeks.org/security/newbie/unix/cron-1.html


su Ubuntu 16 e
versioni

su Ubuntu 19 il minuto è il primo. Inoltre, ti avvisa del momento sbagliato.
Kelalaka,

5
sudo crontab -e

Aggiungi queste righe alla fine del file

*/1 * * * * wget -O /dev/null  project_crone_URL

(Esegui cron per una volta in 1 minuto)

0 0 * * * wget -O /dev/null  project_crone_URL

(Esegui cron per una volta in 24 ore)

salvare il file

Avviare crontab con questo comando

sudo /etc/init.d/cron start

Arresta crontab con questo comando

sudo /etc/init.d/cron stop

Riavvia crontab con questo comando

sudo /etc/init.d/cron restart

1

Se usi crontab -epoiché Ubuntu 16.0+ non avrà il campo utente, quindi il formato corretto è:

17 15 * * * newmail.sh

Questo dice "esegui newmail.sh ogni giorno della settimana, ogni giorno del mese, ogni mese alle 15:17".

Altri modi in cui la risposta di dm78 è corretta e contiene la descrizione esatta del formato.

Inoltre, se qualcosa va storto e hai un sistema di posta installato ti invierà un messaggio. Per maggiori informazioni vedi questa risposta

Se sei interessato alla registrazione di cronjobs, puoi usare questa risposta .


1
Dipende da quale crontab si modifica. Il crontab -ecoso non dispone di un campo utente (come dici tu correttamente) ma il file /etc/crontab(il cosiddetto sistema di crontab) ei file sotto /etc/cron.d fare avere un campo utente.
PerlDuck,
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.