Bieži vien crontab
skripti netiek izpildīti pēc grafika vai kā paredzēts. Tam ir vairāki iemesli:
Šīs kopienas wiki mērķis ir apkopot galvenos iemeslus, kāpēc crontab
skripti netiek izpildīti, kā paredzēts. Katru iemeslu ierakstiet atsevišķā atbildē.
Lūdzu, katrā atbildē iekļaujiet vienu iemeslu - sīkāku informāciju par to, kāpēc tas netiek izpildīts, un šī iemesla labojumu(-us).
Lūdzu, rakstiet tikai par cron specifiskām problēmām, piemēram, komandām, kas tiek izpildītas, kā paredzēts, izmantojot čaulu, bet cron tās izpilda kļūdaini.
Mana galvenā problēma: ja aizmirsāt pievienot jauno rindiņu crontab
faila beigās. Citiem vārdiem sakot, crontab failam jābeidzas ar tukšu rindu.
Zemāk ir atbilstošā sadaļa man lappusēs par šo jautājumu (man crontab
, pēc tam izlaidiet līdz beigām):
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)
Skriptu gadījumā jāizmanto absolūts ceļš:
Piemēram, grep
vietā grep
jālieto /bin/grep
:
# m h dom mon dow command
0 0 * * * /bin/grep ERROR /home/adam/run.log &> /tmp/errors
Tā vietā:
# m h dom mon dow command
0 0 * * * grep ERROR /home/adam/run.log &> /tmp/errors
Tas ir īpaši sarežģīti, jo tā pati komanda darbosies, ja tiks izpildīta no čaulas. Iemesls ir tāds, ka cron
nav tāds pats PATH
vides mainīgais kā lietotājam.