Cron: comandi e utilizzo.

18 Aprile 2013 di In: Sistemistico
Cron è un utility di Unix e Solaris che permette di pianificare l’esecuzione automatica di script o programmi ad intervalli regolari. Queste pianificazioni vengono comunemente chiamate cron jobs. Crontab (CRON TABle) è un file che contiene la pianificazione dei task che verranno eseguite in un dato momento. Questo articolo parla di questi aspetti di Cron: 1. Restrizioni 2. Comandi 3. Sintassi 4. Esempio 5. Ambiente 6. Log

1. Restrizioni

E’ possibile eseguire la crontab solo se il vostro nome utente appare nel file /usr/lib/cron/cron.allow. Se il file non esiste, puoi usare crontab se il tuo uusername non appare nel file /usr/lib/cron/cron.deny. Se cron.deny eiste ed è vuoto, tutti gli utenti possono usare crontab. Se nessuno dei due file esiste, solo root può utilizzare crontab. (I file di allow/deny consistono di una lista di utenti – uno per riga).

2. Comandi

crontab -e Modifica il tuo file di crontab, o ne crea uno se al momento non esiste. crontab -l Visualizza il tuo file crontab. crontab -r Cancella il tuo file crontab. crontab -v Mostra l’orario in cui è stato modificato l’ultima volta il crontab file. (Questa opzione è disponibile solo su pochi sistemi.)

3. Sintassi

Il file crontab ha 5 campi che permettono di specificare il giorno, la data e l’ora seguiti dal comando che deve essere eseguito in quell’intervallo. * * * * * comando da eseguire – – – – – | | | | | | | | | +—– giorno della settimana (0 – 6) (0 = domenica) | | | +——- mese (1 – 12) | | +——— giorno del mese (1 – 31) | +———– ora (0 – 23) +————- minuto (0 – 59) Il valore che andrà inserito al posto dell’asterisco può avere un * o una lista di elementi separati da virgole. Un elemento può essere sia un numero nel range specificato o due numeri separati da trattino per rappresentare un range (3-6 = 3 4 5 6). Note A. ) E’ possibile definire dei pattern di ripetizione come /2 per ogni due minuti o /10 per ogni 10 minuti ma non è supportato da tutti i sistemi operativi. B.) Si può specificare il giorno in 2 campi: giorno del mese e giorno della settimana. Se entrambi sono specificati, vengono intesi come cumulativi ed entrambe verranno eseguite.

4. Esempio

Una linea del file crontab come quella di seguito cancella i file temporanei da /home/someuser/tmp ogni giorno alle 18:30. 30 18 * * * rm /home/someuser/tmp/* Cambianto i parametri come di seguito cambierà la schedulazione secondo cui viene eseguito: min hour day/month month day/week Execution time 30 0 1 1,6,12 * 00:30 Hrs on 1st of Jan, June & Dec. 0 20 * 10 1-5 8.00 PM every weekday (Mon-Fri) only in Oct. 0 0 1,10,15 * * midnight on 1st ,10th & 15th of month 5,10 0 10 * 1 At 12.05,12.10 every Monday & on 10th of every month Note: Se inserite inavvertitamente il comando crontab senza argomenti, non tentate di uscire con CTRL + D perché cancellerà tutto il contenuto del crontab. Ivence usate CTRL + C.

5. Ambiente

Cron esegue il comando dalla user home con la shell (/usr/bin/sh) e fornisce un ambiente di default per ogni shell, definendo: HOME=user home LOGNAME=user name PATH=/usr/bin:/usr/sbin:. SHELL=/usr/bin/sh Gli utenti che desiderano eseguire il loro .profile devono farlo esplicitamente in una crontab entry o in uno script richiamato dalla entry.

6. Log

Per avere il log delle operazioni eseguite durante l’esecuzione di una entry : 30 18 * * * rm /home/utente/tmp/* > /home/utente/cronlogs/clean_tmp_dir.log

Nessun commento presente