답변:
crontab (/ etc / crontab)을 사용하지 않고 시간 필드에 * / 1을 사용하십시오. 나는 이것을 5 분마다 스크립트를 실행하는 데 사용했으며 잘 작동합니다.
# m h dom mon dow user command
* */1 * * * user command
cron.daily
anacron이 올바른 일정을 근사하려고 시도하는 반면, 일반 cron은 기계가 밤새 있지 않으면 실행하지 않기 때문에 사용 하고 친구가 더 잘 작동합니다. 시간별 작업의 경우 아마도 그다지 중요하지 않습니다.
/etc/crontab
: cron.daily
, cron.weekly
및 cron.monthly
시간 단위에서 anacron 실행 (가능한 경우)하지만 run-parts --report /etc/cron.hourly
.
항목 cron.hourly
은 run-parts 메커니즘에 의해 실행됩니다 ( man run-parts
자세한 내용은). 그리고 run-parts
어떤 파일 이름이 유효하다고 생각하는지 선택합니다.
예를 들어, 스크립트에 확장자를 지정하면 유효하지 않게되어 작업이 실행되지 않습니다. [a-zA-Z0-9_-]
유효한 문자이므로 '.' 그것을 무효로 만듭니다.
/etc/cron.hourly
(또는 .daily
, .weekly
등에 작업을 추가 할 때 항상 run-parts
다음 명령을 실행하여 실제로 실행 되는지 테스트 하십시오.
run-parts --test /etc/cron.hourly
이 명령을 실행하면 파일이 표시되어 작동한다는 의미입니다. 그렇지 않으면 파일 이름이 표시되지 않으면 파일 이름이 유효하지 않은 것입니다.
스크립트의 이름은 무엇입니까?
giving your script an extension will make it invalid and result in the job not being run
--report
실제로 스크립트를 실행하는 데 사용할 수도 있습니다 .
달릴 때
crontab -l
이 작업이 목록에 있습니까?
그렇지 않은 경우 추가
crontab -e
이 줄을 추가
0 * * * * yourScript
이 목록에 있으면 프로그래밍 언어 경로를 스크립트 맨 위에 추가하십시오.
예:
bash: #!/bin/bash
이 두 가지가 항상 내 문제를 해결했습니다. :)