/etc/cron.hourly에 파일이 있습니다:
-rwxr-xr-x 1 root root 117 Mar 8 20:33 myjob
나는 일한다:
3,18,33,48 * * * * /usr/bin/python /home/me/src/myproject/src/manage.py myjobs > /home/me/log
3,18,25,27,29,31,33,35,37,48 * * * * /bin/echo "testing....." > /home/me/log
/etc/crontab:
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
로그 파일이 나타나지 않는 이유는 무엇입니까? 빠진 것이 있나요? myjob은 매시간 3,18,...분에 실행되어야 합니다.
답변1
cron.hourly의 항목은 실행 부분 메커니즘에 의해 실행됩니다(자세한 내용은 man 실행 부분 참조). run-parts는 유효한 것으로 간주되는 파일 이름에 대해 까다롭습니다.
예를 들어, 스크립트에 확장을 추가하면 해당 확장이 무효화되고 작업 실행이 실패하게 됩니다.
/etc/cron.hourly(또는 .daily, .weekly 등)에 작업을 추가할 때 항상 run-parts --test /etc/cron 명령을 실행하여 run-parts가 실제로 해당 작업을 실행하고 있는지 테스트하세요. 매시간
답변2
/etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
의 스크립트는 /etc/cron.monthly
특정 시간에 실행되도록 설계되었으며 일반적인 crontab 형식이 아닙니다. 또는 간단히 말해서 crontab 형식 파일이 아닌 스크립트입니다.
/etc/cron.hourly의 경우 매시간 실행됩니다.
crontab에 행을 삽입하려면 crontab -e를 사용해야 합니다. /etc/cron.hourly에서 실행하려면 5개의 시간 필드를 제거하여 매시간만 실행해야 합니다(예: 3,18,33,48 * * * * 제거).
따라서 귀하의 경우 스크립트를 /etc/cron.d
myjob의 내용으로 이동하거나 crontab 파일에 추가할 수 있습니다. /etc/cron.hourly 디렉토리에서 가져옵니다.
/etc/crond.d로 돌아가서 다음과 같은 파일에 넣어야 합니다.
3,18,33,48 * * * * root /usr/bin/python ....