Domanda: Perché il mio lavoro cron non viene eseguito all'ora specificata?
Risposta: Potrebbero esserci molte ragioni per cui un processo cron potrebbe non essere eseguito. Esaminiamo 5 importanti motivi per cui un processo cron non viene eseguito all'ora specificata e come risolvere tali problemi.
1. Interpretazione errata del campo dell'ora e indicazione di valori errati.
Interpretazione errata del campo dell'ora e valori forniti nel campo dell'ora che non menziona l'ora prevista/prevista.
Ad esempio, per eseguire un comando alle 20:00, è necessario specificare l'ora nel formato 24 ore. cioè le 20:00 sono le 20 e non le 8 come mostrato di seguito.
0 8 * * * /home/ubuntu/full-backup [Note: The is wrong for 8 p.m]
0 20 * * * /home/ubuntu/full-backup [Note: This is correct for 8 p.m]
Leggi il nostro tutorial Linux Crontab:15 fantastici esempi di Cron Job per ottenere una profonda comprensione di crontab. Uno dei nostri lettori abituali Binny ha creato un'interfaccia web che genererà voci cron quando selezioni valori appropriati per vari campi crontab nell'interfaccia utente.
2. Percorso dello script o dei comandi della shell non valido in crontab
Assicurati che il percorso completo dello script della shell sia specificato nel crontab.
0 8 * * * tape-backup [Note: Invalid. No full path specified] 0 8 * * * /home/debian-os/bin/tape-backup [Note: Valid. This is correct with full path]
Nota: Se non vuoi fornire il percorso completo in crontab, assicurati di aggiungere la variabile PATH in crontab (esempio n. 14)
3. Nessuna autorizzazione di esecuzione per lo script della shell in Cron
Potresti aver fornito il comando corretto con il percorso corretto, ma il comando potrebbe non disporre dell'autorizzazione di esecuzione. Se stai utilizzando qualsiasi comando standard Unix, avrà l'autorizzazione di esecuzione impostata per impostazione predefinita.
Tuttavia, se stai utilizzando alcuni comandi definiti dall'utente (script di shell), assicurati di concedere l'autorizzazione all'esecuzione come mostrato di seguito.
*/15 * * * * /home/fedora-os/check-disk-space [Note: Executes check-disk-space every 15 minutes] # cd /home/fedora-os # chmod u+x check-disk-space
4. % di età nel comando Cron Job o nello script della shell
Se un comando contiene un %, il tuo comando non verrà eseguito. Consulta le nostre precedenti domande frequenti sui problemi di Crontab %age per capire come risolvere questo problema.
5. Non è consentito eseguire Cron Job da Sysadmin
Un amministratore di sistema può decidere quale utente può eseguire lavori cron e quali utenti no. Quindi, per negare a un utente di eseguire un processo cron, l'amministratore di sistema potrebbe aver inserito il tuo nome utente nel file /etc/cron.deny.
Se hai il privilegio di root, controlla il file /etc/cron.deny per assicurarti che il tuo nome non sia elencato lì. Se è elencato, modifica il file e rimuovi il tuo nome. Se non disponi dei privilegi di root contatta il tuo amministratore di sistema.