나는 Raspberry PI에서 프로젝트를 만들었고 루틴과는 별개로 잘 작동합니다 crontab
. 이 주제에 대해 많이 읽었지만 오류를 찾을 수 없습니다. 이 스크립트를 실행하면
/home/icf/catFeeder/checkDispenseFood.sh
터미널에서는 잘 작동합니다.
이것은 checkDispenseFood.sh
:
#!/bin/sh
cd /
cd home/icf/catFeeder
sudo python checkDispenseFood.py
cd /
소유자 checkDispenseFood
는 루트이고 권한은 모든 사람/단일 소유자/모든 사람입니다.
내 cronlog를 확인하면 다음이 표시됩니다.
Jul 25 10:00:01 raspberrypi CRON[1850]: (root) CMD /home/icf/catFeeder/checkDispenseFood.sh >> /home/icf/logs/cronlog)
Jul 25 10:00:01 raspberrypi CRON[1849]: (CRON) info (No MTA installed, discarding output)
그리고 정해진 시간에 정확히 하세요.
이것은 내가 찾은 크론입니다 sudo crontab -e
.
0 * * * * /home/icf/catFeeder/checkDispenseFood.sh >> /home/icf/logs/cronlog
그러나 아무 일도 일어나지 않았습니다. 내가 무엇을 놓치고 있나요?
답변1
대답할 때 몇 가지 가정을 해야 했기 때문에 최선의 추측은 다음과 같습니다.
.sh
스크립팅이 전혀 필요하지 않다고 생각합니다. crontab
아래와 같이 Python 스크립트를 실행할 수 있습니다 .
댓글을 달 수가 없어요필요높은 권한( sudo
)을 사용하고 있지만 을 사용하고 있으므로 root's crontab
모든 스크립트는 높은 권한으로 실행됩니다. 너해서는 안 된다sudo
에서 실행되는 모든 프로그램/스크립트에 사용됩니다 root's crontab
.
이 고양이 먹이통에 대한 높은 권한이 정말로 필요한 경우 다음 줄을 사용하십시오 root crontab
.
0 * * * * /usr/bin/python /home/icf/catFeeder/checkDispenseFood.py >> /home/icf/catFeeder/cronlog.txt 2>&1
이 crontab
항목은 시스템을 사용하여 지정된 .py 스크립트를 실행합니다.기본 버전파이썬. 다음과 같이 명령줄에서 시스템 기본값을 확인할 수 있습니다.
python --version
.py 스크립트가 시스템 기본값과 호환되는지 확인하세요. 그렇지 않은 경우 기본값을 변경하거나 스크립트를 변경하십시오.
cronlog에서 공유한 메시지를 WRT하세요:
첫 번째 메시지의 마지막 문자는 "오른쪽 대괄호"
)
이며 다음과 같습니다.견줄 나위 없는, 사용자에게 입력 오류를 묻는 메시지가 표시될 수 있나요?두 번째 메시지는 MTA(메일 전송 에이전트)가 Raspberry Pi에 설치되어 있지 않음을 나타냅니다. RPiOS(née Raspbian)를 사용하는 경우 기본 배포판에는 MTA가 없습니다.하지만
cron
(기본값) 작업 출력에 대한 유효한 리디렉션이 없는 경우에만 MTA에 문의하십시오. 따라서 리디렉션을 올바르게 구성하지 않은 것 같습니다. 나는crontab
위에 제공된 줄이 프로그램의 출력과 오류를 포착할 것이라고 생각합니다 .
이것이 도움이 되기를 바랍니다. 그렇지 않다면 저희에게 알려주세요.