Invia, modifica, elenca o rimuove lavori cron.
crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ]
Il comando crontab invia, modifica, elenca o rimuove i lavori cron. Un lavoro cron è un comando eseguito dal daemon cron a intervalli regolari programmati. Per inviare un lavoro cron, specificare il comando crontab con l'indicatore -e. Il comando crontab richiama una sessione di modifica che consente la creazione di un file crontab. In questo file vengono create le voci per ciascun lavoro cron. Ciascuna voce deve avere un formato accettabile per il daemon cron. Per informazioni sulla creazione delle voci, consultare Formato voce file crontab.
Al termine della creazione delle voci e una volta chiuso il file, il comando crontab lo copia nell'indirizzario /var/spool/cron/crontabs, in un file denominato con il nome utente corrente. Se è già presente un file con quel nome nell'indirizzario crontabs il comando crontab lo sovrascrive.
In alternativa, è possibile creare un file crontab specificando il parametro File. Se il file esiste già, deve avere il formato previsto dal daemon cron. In caso contrario, il comando crontab richiama l'editor. Se la variabile di ambiente EDITOR esiste già, il comando richiama l'editor specificato. In caso contrario, il comando crontab utilizza l'editor vi.
Per elencare il contenuto del file crontab, specificare il comando crontab con l'indicatore -l. Per rimuovere un file esistente, utilizzare l'indicatore -r.
Il parametro opzionale UserName può essere utilizzato dal proprietario del file crontab o dall'utente root per modificare, elencare, rimuovere o verificare lo stato dei lavori cron per l'utente specificato. Se UserName non è valido, viene generato un messaggio di errore e il programma viene chiuso.
Se non viene specificato il parametro opzionale UserName, gli indicatori crontab sono disponibili per l'utente root e l'utente corrente.
Solo l'utente root o il proprietario del file crontab può utilizzare UserName dopo gli indicatori -e, -l, -r e -v per modificare, elencare, rimuovere o verificare il file crontab dell'utente specificato.
Il daemon cron esegue i comandi in base alle voci file crontab. A meno che non venga reindirizzata l'emissione di un lavoro cron a un'emissione standard o a un errore, il daemon cron invia tramite posta gli eventuali errori o emissione del comando. Se un lavoro cron viene specificato in modo non corretto nel file crontab, il daemon cron non esegue il lavoro.
Il daemon cron esamina i file crontab solo quando viene inizializzato il daemon cron. Quando vengono apportate delle modifiche al file crontab tramite il comando crontab, viene inviato un messaggio che indica tali modifiche al daemon cron. In questo modo si elimina il sovraccarico determinato dalla ricerca di file nuovi o modificati a intervalli regolari programmati.
I file /var/adm/cron/cron.allow e /var/adm/cron/cron.deny controllano gli utenti che possono utilizzare il comando crontab. Un utente root può creare, modificare o cancellare questi file. Le voci presenti in questi file sono nomi di accesso utente con un nome per riga. Se l'ID di accesso è associato a più di un nome di accesso, il comando crontab utilizza il primo nome di accesso nel file /etc/passwd indipendentemente dal nome di accesso effettivamente in uso. Inoltre, per consentire agli utenti di avviare i lavori cron, l'attributo daemon del file /etc/security/user deve essere impostato su TRUE, tramite il comando chuser.
Di seguito viene riportato un esempio di file cron.allow:
root nick dee sarah
Se il file cron.allow esiste già, solo gli utenti il cui nome compare in esso posso utilizzare il comando crontab. Il nome del log dell'utente root deve essere presente nel file cron.allow, se esistente. Un amministratore di sistema può impedire esplicitamente a un utente di utilizzare il comando crontab, indicando il nome di accesso dell'utente nel file cron.deny. Se solo il file cron.deny esiste, qualsiasi utente il cui nome non compare nel file può utilizzare il comando crontab.
Un utente può utilizzare il comando crontab se si verifica una delle seguenti condizioni:
Se né il file cron.allow né il file cron.deny esiste, solo chi dispone dell'autorizzazione utente root può inviare un lavoro con il comando crontab.
Un file crontab contiene le voci di ciascun lavoro cron, separate da caratteri di nuova riga. Ciascuna voce del file crontab contiene sei campi separati da spazi o tabulazioni con il seguente formato:
minute hour day_of_month month weekday command
Questi campi accettano i seguenti valori:
| minute | Da 0 a 59 |
| hour | Da 0 a 23 |
| day_of_month | Da 1 a 31 |
| month | Da 1 a 12 |
| weekday | Da 0 a 6, dalla domenica al sabato |
| command | Un comando shell |
È necessario specificare un valore per ciascun campo. Ad eccezione del campo command, questi campi contengono:
Nota: qualsiasi carattere preceduto da una barra rovesciata (incluso %) fa sì che il carattere venga trattato letteralmente. La specifica dei giorni può essere effettuata tramite due campi (day of the month e day of the week). Se vengono specificati entrambi in un elenco di elementi, vengono presi in considerazione entrambi. Ad esempio, la seguente voce:0 0 1,15 * 1 commandconsente di eseguire il comando il primo e il quindicesimo giorno del mese e ogni lunedì. Per specificare i giorni con un solo campo, l'altro campo deve contenere un * .
Il daemon cron esegue il comando denominato nel sesto campo alla data e all'ora selezionate. Se in questo campo viene inserito % (segno di percentuale), il daemon cron considera tutto ciò che precede questo segno come un richiamo del comando e lo rende disponibile per l'immissione standard, a meno che non venga inserito anche il carattere escape (\%). Le righe vuote e quelle in cui il primo carattere è il segno di numero (#) vengono ignorate. Se gli argomenti del comando contengono una barra rovesciata, ('\'), questa deve essere preceduta da un'altra barra rovesciata.
Il daemon cron avvia uno shell secondario dall'indirizzario HOME. Se viene programma l'esecuzione di un comando quando l'utente non è collegato e si desidera che vengano eseguiti i comandi nel file .profile, il comando deve leggere esplicitamente il file .profile.
Il daemon cron fornisce un ambiente predefinito per ciascuno shell, definendo HOME, LOGNAME, SHELL (=/usr/bin/sh) e PATH (=/usr/bin).
Eventi di controllo: se il sottosistema di controllo è stato configurato correttamente ed è stato abilitato, il comando crontab genera la seguente registrazione di controllo (evento) ogni volta che viene eseguito:
Questo comando restituisce i seguenti valori di uscita:
| 0 | Completamento riuscito. |
| >0 | Si è verificato un errore. |
crontab mycronjobsIl file viene copiato come:
/var/spool/cron/crontabs/<username>dove <username> è il nome utente corrente.
0 * * * * echo The hour is `date` . >/dev/console
30 6 * * 1,3,5 /usr/bin/calendar
30 6 * * * /usr/bin/calendar
0 0 * 8 * /u/harry/bin/maintenance
0 16 * 12 5 /usr/sbin/wall%HAPPY HOLIDAY!%Remember to turn in your time card.Il testo che segue % (segno di percentuale) definisce l'immissione standard sul comando wall come:
HAPPY HOLIDAY! Remember to turn in your time card.