Cron. 시간당 실행되지 않습니다


54

좋아, 그래서 나는 스크립트를 만들었고, /etc/cron.hourly그다음 chmod 777에 파일에 넣었지만 파일은 자동으로 실행되지 않습니다. 수동으로 실행하면 정상적으로 작동합니다. 다른 조치가 필요합니까?


이 답변은 파일 이름과 내용이없는 많은 투표를받지 않아야합니다.
사용자가 알 수 없음

답변:


13

crontab (/ etc / crontab)을 사용하지 않고 시간 필드에 * / 1을 사용하십시오. 나는 이것을 5 분마다 스크립트를 실행하는 데 사용했으며 잘 작동합니다.

# m h dom mon dow user  command
* */1  * * *   user    command

6
cron.dailyanacron이 올바른 일정을 근사하려고 시도하는 반면, 일반 cron은 기계가 밤새 있지 않으면 실행하지 않기 때문에 사용 하고 친구가 더 잘 작동합니다. 시간별 작업의 경우 아마도 그다지 중요하지 않습니다.
poolie

9
해결 방법을 찾기보다는 cron.hourly의 문제를 해결하므로 다음 답변에 정말 감사드립니다.
tishma

4
이것은 질문에 대한 답변이 아닙니다
josh123a123 2016

@poolie 으로는 볼 수 있습니다/etc/crontab : cron.daily, cron.weeklycron.monthly 시간 단위에서 anacron 실행 (가능한 경우)하지만 run-parts --report /etc/cron.hourly.
Pablo A

144

항목 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

이 명령을 실행하면 파일이 표시되어 작동한다는 의미입니다. 그렇지 않으면 파일 이름이 표시되지 않으면 파일 이름이 유효하지 않은 것입니다.

스크립트의 이름은 무엇입니까?


cerebro_random_response.sh와 Cerebro Temperature.sh의 두 가지가 좋지 않습니다.
Switchkick

21
맞습니다, 좋지 않습니다 :) [a-zA-Z0-9_-]는 유효한 문자이므로 '.' 그것을 무효로 만듭니다. 이것이 바로 '스크립트에 확장 기능을 부여하면 유효하지 않게됩니다'라는 뜻입니다.
DaithiF

11
세상에, 이것은 방금 큰 두통을 구했습니다. 감사합니다! giving your script an extension will make it invalid and result in the job not being run
Jonathan S. Fisher

--report실제로 스크립트를 실행하는 데 사용할 수도 있습니다 .
Pablo A

5

문제는 아마도 너무 열린 권한으로 인해 누구나 파일을 편집 할 수 있다는 것입니다. 755대신 시도하십시오 .

syslog 출력에서 ​​cron 항목을 살펴보면이를 확인해야합니다.


4

DaithiF의 답변이 정답이어야합니다.

또한 내 스크립트 #!/bin/bash에는 첫 줄 이 없었 습니다. 명령 행으로 스크립트를 실행할 수 있지만 run-parts"Exec format error"라는 메시지가 표시되지 않습니다.

파일 이름을에서 scriptname.sh로 변경하고 첫 줄에 scriptname추가하면 #!/bin/bash스크립트가 매시간 실행됩니다.


-1

달릴 때

crontab -l

이 작업이 목록에 있습니까?

그렇지 않은 경우 추가

crontab -e

이 줄을 추가

0 * * * * yourScript

이 목록에 있으면 프로그래밍 언어 경로를 스크립트 맨 위에 추가하십시오.

예:

bash: #!/bin/bash

이 두 가지가 항상 내 문제를 해결했습니다. :)


모든 것을 완료하고 스크립트는 훌륭합니다. 매력처럼 작동합니다. crontab 목록에도 있지만 시간별 작업은 실행되지 않습니다. 어쨌든 감사합니다 :(
Switchkick
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.