Ofte kjøres ikke crontab
-skript etter planen eller som forventet. Det er mange grunner til det:
Denne fellesskapswikien tar sikte på å samle de viktigste årsakene til at crontab
-skript ikke kjøres som forventet. Skriv hver årsak i et eget svar.
Vennligst ta med én årsak per svar - detaljer om hvorfor det ikke kjøres - og løsning(er) for den ene årsaken.
Vennligst skriv bare cron-spesifikke problemer, f.eks. kommandoer som utføres som forventet fra skallet, men som utføres feil av cron.
My top gotcha: Hvis du glemmer å legge til en ny linje på slutten av crontab
-filen. Med andre ord skal crontab-filen avsluttes med en tom linje.
Nedenfor er det relevante avsnittet i man-sidene for dette problemet (man crontab
og hopp deretter til slutten):
Although cron requires that each entry in a crontab end in a newline
character, neither the crontab command nor the cron daemon will detect
this error. Instead, the crontab will appear to load normally. However,
the command will never run. The best choice is to ensure that your
crontab has a blank line at the end.
4th Berkeley Distribution 29 December 1993 CRONTAB(1)
Absolutt sti skal brukes for skript:
For eksempel bør /bin/grep
brukes i stedet for grep
:
# m h dom mon dow command
0 0 * * * /bin/grep ERROR /home/adam/run.log &> /tmp/errors
I stedet for:
# m h dom mon dow command
0 0 * * * grep ERROR /home/adam/run.log &> /tmp/errors
Dette er spesielt vanskelig, fordi den samme kommandoen vil fungere når den kjøres fra skallet. Årsaken er at cron
ikke har samme PATH
miljøvariabel som brukeren.