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.