Come si imposta un processo Cron?

483

Voglio pianificare un'attività da eseguire regolarmente e ho sentito che Cron è il modo per farlo.

Come faccio ad aggiungere lavori Cron in Ubuntu?

    
posta Gabriel Solomon 16.08.2010 - 10:25

6 risposte

596

Inserisci uno script di shell in una di queste cartelle: /etc/cron.daily , /etc/cron.hourly , /etc/cron.monthly o /etc/cron.weekly .

Se non ti bastano, puoi aggiungere attività più specifiche, ad es. due volte al mese o ogni 5 minuti. Vai al terminale e digita:

crontab -e

Questo aprirà il tuo personale crontab (file di configurazione di cron). La prima riga in quel file spiega tutto! In ogni riga è possibile definire un comando da eseguire e la relativa pianificazione, e il formato è abbastanza semplice quando si ottiene il blocco di esso. La struttura è:

minute hour day-of-month month day-of-week command

Per tutti i numeri è possibile utilizzare elenchi, ad es. 5,34,55 nel campo dei minuti significherà correre alle 5 passate, alle precedenti 34 e alle 55 precedenti qualunque ora sia definita.

Puoi anche usare gli intervalli. Sono definiti così: */20 . Questo esempio significa ogni 20, quindi nella colonna dei minuti equivale a 0,20,40 .

Quindi, per eseguire un comando ogni lunedì alle 5:30 del pomeriggio:

30 17 * * 1 /path/to/command

o ogni 15 minuti

*/15 * * * * /path/to/command

Tieni presente che il giorno della settimana passa da 0 a 6 dove 0 è domenica.

Puoi leggere più qui .

    
risposta data LassePoulsen 09.03.2018 - 03:07
93

Se il lavoro che vuoi eseguire può essere eseguito con gli stessi privilegi del tuo utente, ti consiglio di utilizzare un crontab utente che puoi modificare eseguendo EDITOR="gedit" crontab -e (che userà gedit per modificare il file crontab) o semplicemente crontab -e (che utilizzerà l'editor predefinito) in un terminale.

Se vuoi eseguire qualcosa ogni 10 minuti, ad esempio, aggiungi una riga come questa

*/10 * * * * /usr/bin/somedirectory/somecommand

e salva il file.

Puoi vedere il contenuto dell'utente crontab con crontab -l .

Il modo più flessibile è utilizzare il crontab di sistema che puoi modificare eseguendo sudo crontab -e in un terminale. Ciò ti consentirà di eseguire i tuoi comandi come root (nel caso tu abbia bisogno di quel livello di privilegio) o qualsiasi altro utente sul sistema.

Quindi se vuoi eseguire qualcosa ogni 10 minuti come root , ad esempio, aggiungi una riga come questa

*/10 * * * * root /usr/bin/somedirectory/somecommand

e salva il file. (nota l'aggiunta dell'utente alla linea)

Puoi vedere il contenuto del file crontab di sistema con sudo crontab -l .

Maggiori dettagli su: link

    
risposta data Li Lo 16.08.2010 - 10:58
51

Se preferisci farlo utilizzando una GUI, puoi andare al Software Center e installare Attività pianificate (o eseguire sudo apt-get install gnome-schedule ). Fornirà una potente GUI per aggiungere attività di cron.

Si noti che se si utilizza questo metodo, le attività per impostazione predefinita verranno eseguite come utente personale, non come root. Questo di solito è una buona cosa.

    
risposta data Javier Rivera 16.08.2010 - 11:21
23

Raccomando Task Scheduler di KDE ( kde-config-cron ) . Accedilo da Impostazioni di sistema nel modulo Utilità di pianificazione lì.

Gestisce sia i Crontabs personali che di sistema, e la facilità di creare i limiti temporali mi ha molto sorpreso (vedi lo screenshot qui sotto). Penso che questa parte sia davvero sottovalutata.

    
risposta data gertvdijk 01.02.2013 - 00:59
11

L'Utilità di pianificazione di KDE non funzionerà nella normale Ubuntu. Funziona solo su KDE Systems come KUbuntu. Per i sistemi non KDE preferirai usare gnome-schedule

$ sudo apt-get install gnome-schedule

L'app è Attività pianificate in Dash.

    
risposta data Antonio 11.02.2014 - 15:35
8

Volevo impostare un processo Cron per eseguire uno script bash, quindi l'esecuzione dello script aggiungerebbe un processo cron.

L'ho capito quando usi:

crontab -e 

Quindi crea il file:

/var/spool/cron/crontabs/root

Dove root è il nome dell'utente che sta eseguendo il comando crontab. Quindi, basandoci su questo e almeno in 14.04, possiamo eseguire i seguenti comandi bash per creare un nuovo job Cron:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Abbiamo anche bisogno di impostare la proprietà corretta per il file:

chown root:root /var/spool/cron/crontabs/root

E imposta le autorizzazioni corrette:

chmod 600 /var/spool/cron/crontabs/root

Se quando si esegue crontab -e ci sono già dei lavori Cron nell'elenco, quindi si può aggiungere all'elenco usando il seguente comando:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root
    
risposta data Craig van Tonder 27.09.2016 - 22:25

Leggi altre domande sui tag