Il motivo più frequente che ho visto cron fallire in una pianificazione dichiarata in modo errato. Ci vuole pratica per specificare un lavoro programmato per le 23:15 come 15 23 * * *
anziché * * 11 15 *
o 11 15 * * *
. Anche il giorno della settimana per i lavori dopo mezzanotte viene confuso. MF è 2-6
dopo mezzanotte, no 1-5
. Le date specifiche sono di solito un problema poiché le usiamo raramente * * 3 1 *
non è il 3 marzo. Se non sei sicuro, controlla i tuoi programmi cron online su https://crontab.guru/ .
Se il tuo lavoro con piattaforme diverse utilizzando opzioni non supportate, ad esempio le 2/3
specifiche temporali, può anche causare errori. Questa è un'opzione molto utile ma non universalmente disponibile. Ho anche riscontrato problemi con elenchi come 1-5
o 1,3,5
.
L'uso di percorsi non qualificati ha anche causato problemi. Il percorso predefinito è in genere /bin:/usr/bin
quindi verranno eseguiti solo i comandi standard. Queste directory di solito non hanno il comando desiderato. Ciò influisce anche sugli script che utilizzano comandi non standard. Altre variabili d'ambiente possono anche mancare.
Il blocco di un crontab esistente mi ha causato dei problemi. Ora carico da una copia del file. Questo può essere recuperato dal crontab esistente usando crontab -l
se viene bloccato. Conservo la copia di crontab in ~ / bin. È commentato dappertutto e termina con la riga # EOF
. Questo viene ricaricato quotidianamente da una voce crontab come:
#! / Usr / bin / crontab
# Ricarica questo crontab
#
54 12 * * * $ {HOME} / bin / crontab
Il comando reload sopra si basa su un crontab eseguibile con un percorso bang che esegue crontab. Alcuni sistemi richiedono il crontab in esecuzione nel comando e la specifica del file. Se la directory è condivisa in rete, spesso uso crontab.$(hostname)
come nome del file. Questo alla fine correggerà i casi in cui il crontab sbagliato viene caricato sul server sbagliato.
L'utilizzo del file fornisce un backup di ciò che dovrebbe essere il crontab e consente il crontab -e
backup automatico delle modifiche temporanee (l'unica volta che utilizzo ). Sono disponibili intestazioni che aiutano a ottenere correttamente i parametri di pianificazione. Li ho aggiunti quando gli utenti inesperti stavano modificando un crontab.
Raramente, ho incontrato comandi che richiedono l'input dell'utente. Questi falliscono in crontab, anche se alcuni funzioneranno con il reindirizzamento dell'input.
crontab -e
affinché il cron abbia effetto. Ad esempio, usando vim, modifico il file e lo uso:w
per scriverlo, ma il lavoro non viene aggiunto a cron fino a quando non esco anch'io. Quindi non vedrò il lavoro fino a dopo:q
anche io .