Cron è un programmatore di lavoro basato sul tempo, è configurato per eseguire comandi a orari o intervalli prestabiliti. Ogni utente ha una tabella cron che definisce cosa eseguire ea quale intervallo. cronaca comando viene utilizzato per creare, modificare e visualizzare i lavori cron.
File e directory di configurazione
– Cron è controllato da un insieme di file chiamato crontabs.
– C'è il file master in /etc/crontab , insieme ai file crontab per gli utenti in /var/spool/cron/ . In quest'ultima directory, ai file viene assegnato lo stesso nome del nome utente di un utente.
– Il file /etc/crontab esegue automaticamente gli elementi in diverse sottodirectory a intervalli regolari. Gli script si trovano in varie directory:/etc/cron.* vengono eseguiti secondo l'intervallo di tempo indicato di seguito. Tutti gli script in queste directory vengono eseguiti con il privilegio di root.
Directory | Tempo |
---|---|
/etc/cron.hourly | Primo minuto di ogni ora |
/etc/cron.daily | Tra le 3:05 e le 22:55 ogni giorno |
/etc/cron.weekly | Tra le 3:25 e le 23:10 dopo 7 giorni dall'ultima esecuzione |
/etc/cron.monthly | Tra le 3:45 e le 23:30 dopo un mese dall'ultima esecuzione |
– Tutto ciò che l'amministratore di sistema deve fare è inserire uno script di shell o un collegamento a un eseguibile in una delle directory e verrà eseguito automaticamente al momento opportuno.
Sintassi crontab
La configurazione di un crontab a livello di utente è leggermente diversa. I file in /var/spool/cron non vengono modificati direttamente. Invece, per manipolarli viene utilizzato un programma chiamato crontab. La sintassi del comando crontab è:
Usage: crontab [options] file crontab [options] crontab -n [hostname] Options: -u [user] define user -e edit user's crontab -l list user's crontab -r delete user's crontab -i prompt before deleting -n [host] set host in cluster to run users' crontabs -c get host in cluster to run users' crontabs -s selinux context -x [mask] enable debugging
Come modificare un crontab
Il modo migliore per modificare un crontab è usare il comando crontab -e . Un altro modo per farlo è :
1. su to the user whose cron you want to change 2. crontab -l > file [ copy the crontab to a file ]. 3. vi file [ make changes to the file as per your need ] 4. crontab file [ this makes the "file" as new crontab ]
Non è necessario riavviare il demone cron dopo questo.
Interpretazione dei campi di ora e data
Ogni comando cron ha 5 campi di data e ora, seguiti da un nome utente [opzionale], e se questo è il file crontab di sistema, sarà seguito da un comando. I comandi vengono eseguiti quando l'ora specificata dai campi ora/data corrisponde all'ora corrente.
field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 0-31 month 0-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names)
Un campo può essere un asterisco (*), che sta sempre per dal primo all'ultimo . Quindi, se utilizzato nel campo del mese, significa ogni mese da 0 (gennaio) a 12 (dicembre).
Esempio di lavoro Cron:
# Example of job definition: .---------------- minute (0 - 59) | .------------- hour (0 - 23) | | .---------- day of month (1 - 31) | | | .------- month (1 - 12) OR jan,feb,mar,apr ... | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | | | 0 1 * * * [user-name] [command to be executed]
Esempi di impostazione dei lavori cron
Di seguito sono riportati alcuni esempi di utilizzo di crontab per capire come pianificare un'attività :
Esempio : eseguire un lavoro cinque minuti dopo la mezzanotte, ogni giorno :
5 0 * * * /home/oracle/scan_asm_devices.sh
Esempio: eseguire un lavoro alle 17:30 il 1° di ogni mese :
30 17 1 * * mail -s "It's 5:30pm"
Esempio: Esecuzione di un lavoro alle 4:05 ogni lunedì.
5 4 * * mon echo "run at 5 after 4 every monday"
Controllo dell'accesso degli utenti
– Per consentire agli utenti di accedere a crontabs, i file /etc/cron.allow e /etc/cron.deny possono essere utilizzati rispettivamente per consentire o negare l'accesso. Inserisci semplicemente un nome utente in uno dei 2 file per consentire o negare l'accesso a crontab.
– Se il file /etc/cron.allow esiste, il file /etc/cron.deny non verrà utilizzato.
– Nell'installazione predefinita esisterà solo un file vuoto /etc/cron.deny.
– Se nessuno dei file esiste, solo l'utente root avrà accesso per pianificare un lavoro tramite cron.