Il comando Crontab gestisce la tabella cron che viene utilizzata dal demone cron per eseguire i lavori cron. Questo articolo spiega le varie opzioni della riga di comando del comando crontab.
1. Modificare altri utenti Crontab usando Option -u
-u sta per utente. Questo dovrebbe essere seguito da un nome utente valido nel sistema. -u opzione da sola non fa nulla. Dovrebbe essere combinato con altre opzioni. In realtà, può essere combinato con qualsiasi altra opzione della riga di comando di crontab.
Se non specifichi -u username, i comandi crontab verranno eseguiti sull'utente corrente. Ad esempio, tutti i seguenti comandi crontab verranno eseguiti sull'utente attualmente connesso.
crontab -l crontab -e crontab -r ..
Se specifichi -u username, il comando crontab verrà eseguito sul dato username. Ad esempio, tutti i seguenti comandi crontab verranno eseguiti sull'utente Oracle.
crontab -u oracle -l crontab -u oracle -e crontab -u oracle -r ..
2. Visualizza la tabella Cron usando l'opzione -l
-l sta per lista. Questo mostra il crontab dell'utente corrente. Dato che ho effettuato l'accesso come root, verranno visualizzati i lavori cron dell'utente root.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup
Per visualizzare i lavori cron di altri utenti, combinare -l con l'opzione -u.
# crontab -u oracle -l 01 00 * * * /bin/sh /home/oracle/bin/rman-backup
I 15 esempi di crontab spiegano i modi pratici per utilizzare le voci del lavoro cron.
3. Modifica la tabella Cron usando l'opzione -e
-e sta per modifica. Ciò ti consente di modificare il crontab dell'utente corrente. Dato che ho effettuato l'accesso come root, questo aprirà automaticamente i cron job di root in un editor Vim e mi consentirà di modificarlo.
# crontab -e 53 00 * * 7 /bin/sh /home/root/bin/server-backup ~ ~ /tmp/crontab.7dgqju
Come puoi notare da quanto sopra, /tmp/crontab.7dgqju è un file temporaneo creato automaticamente da crontab in cui puoi modificare i tuoi lavori cron.
Quando salvi le tue modifiche ed esci dall'editor Vim, verrà visualizzato uno dei seguenti messaggi, a seconda che tu abbia apportato modifiche o meno.
# crontab -e crontab: no changes made to crontab # crontab -e crontab: installing new crontab
Nota:l'editor utilizzato da crontab per aprire i lavori cron per la modifica dipende dalla variabile di ambiente VISUAL o EDITOR. Per impostazione predefinita, utilizzerà l'editor Vim in ambiente Linux. Ma puoi cambiarlo usando la variabile d'ambiente VISUAL/EDITOR.
Per modificare i lavori cron di altri utenti, combinare -e con l'opzione -u.
# crontab -u oracle -e crontab: installing new crontab
Per comprendere il significato delle voci crontab stesse, fare riferimento a Come eseguire un processo Cron ogni 5 minuti (o ore, o giorni o mesi).
4. Carica Crontab da un file
Invece di modificare manualmente crontab per aggiungere nuovi lavori, puoi anche caricare tutti i lavori cron da un file. Questo è utile quando devi mantenere molti server che hanno le stesse voci di lavoro cron.
Nell'esempio seguente, tutti i lavori cron si trovano nel file /home/root/mycronjobs.txt.
# cat /home/root/mycronjobs.txt 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
Per caricare i lavori mycronjobs.txt sul crontab dell'utente corrente, procedi come segue:
# crontab /home/root/mycronjobs.txt
Convalida per assicurarti che i lavori cron siano stati caricati correttamente.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
Nota:fai attenzione durante l'utilizzo di questo metodo di caricamento, poiché ciò cancellerà tutte le voci di cron job correnti prima di caricare quelle nuove.
Per caricare il lavoro cron da un file a un altro utente, combinalo con l'opzione -u.
# crontab -u oracle /home/oracle/mycronjobs.txt
5. Aggiungi SELinux Security usando Option -s
-s sta per SELinux. Questo aggiungerà la variabile MLS_LEVEL al crontab che contiene l'attuale contesto di sicurezza SELinux.
Per utilizzare l'opzione -s, dovresti caricare i lavori cron da un file.
# cat /home/root/mycronjobs.txt 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota # crontab -s /home/root/mycronjobs/my.txt SELINUX_ROLE_TYPE=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota
A seconda del tuo sistema, quanto sopra aggiungerà la variabile SELUUX_ROLE_TYPE o la variabile MLS_LEVEL che contiene la stringa del contesto di sicurezza SELinux. Se non stai usando SELinux nel tuo ambiente, non preoccuparti di cosa fa questa opzione. SELinux è un argomento di discussione separato, che potremmo trattare in dettaglio in articoli futuri.
6. Elimina tutti i lavori Cron usando l'opzione -r
-r sta per rimuovere. Questo rimuoverà tutte le voci del lavoro cron dell'utente corrente come mostrato di seguito.
# crontab -l 53 00 * * 7 /bin/sh /home/root/bin/server-backup 01 00 * * * /bin/sh /home/root/bin/check-user-quota # crontab -r # crontab -l no crontab for root
-i sta per modalità interattiva. La combinazione di -i con -r ti chiederà una conferma prima di rimuovere tutte le voci crontab.
# crontab -ir crontab: really delete root's crontab? n
Per rimuovere i lavori cron di altri utenti, combinare -r con l'opzione -u.
# crontab -u oracle -l 01 00 * * * /bin/sh /home/oracle/bin/rman-backup # crontab -u oracle -r # crontab -u oracle -l no crontab for oracle