Cron 작업이 crontab.txt를 생성합니다: 찾을 수 없음 [닫힘]

Cron 작업이 crontab.txt를 생성합니다: 찾을 수 없음 [닫힘]

Cron에서 스크립트가 제대로 실행되지 않는 이유를 찾아보세요.

다음 내용이 포함된 *.py 파일을 1분마다 호출하도록 셸을 설정합니다(선행 및 후행 # 줄이 제거됨).

* * * * * python /root/job.sh 

job.sh는 I2C 온도 모듈을 확인하고 결과를 Ubidots로 보내는 *.py 파일을 실행합니다. 수동 조작이 훌륭하게 작동합니다. Cron 재시작(시작, 활성화 및 재시작)과 job.sh에 사용자 이름 및 전체 경로 추가와 같은 기타 변형을 시도했습니다.

스크립트는 다음과 같습니다.

    #!/usr/bin/env python 
    python /root/temperature-monitor/main.py

파일에는 다음과 같은 속성이 있습니다(chmod a+x, u+x, 755, 666 등도 시도됨).

-rwx--x--x 1 root root 62 Jul 21 15:07 job.sh

logread를 확인하면 cron이 실행 중임을 알 수 있습니다.

Fri Jul 21 15:38:00 2017 cron.info crond[3464]: USER root pid 3491 cmd /root/job.sh

다음과 같이 로그 파일을 만들고 출력을 해당 파일로 지정합니다.

 * * * * * python /root/job.sh >/root/test1.log 2>&1

파일의 출력에는 다음이 포함됩니다.

-ash: crontab.txt: not found

그러나 crontab.txt는 작업이 나열되는 /etc/crontabs에 루트(파일 이름)로 나열됩니다.

다음에 무엇을 시도할지에 대한 아이디어가 있나요? 시작 후 스크립트가 무한 루프에서 실행되지 않도록 하세요.

답변1

crontab에서 python을 호출하여 쉘 스크립트를 실행합니다(이것은 python 스크립트가 아닙니다). Python을 sh(또는 ash 또는 bash)로 변경하면 더 잘 작동할 것이라고 생각합니다.

답변2

python을 넣을 필요가 없습니다 crontab. 쉘 스크립트이며 Python은 스크립트 내부에서 실행됩니다. 스크립트는 실행 가능하고 shebang 줄이 있으므로 스크립트 자체를 명령으로 실행할 수 있습니다.

* * * * * /root/job.sh

관련 정보