cron 큐잉 bash 및 python 스크립트

Sep 29 2020

저는 현재 제 macbook pro의 crontab 대기열을 이해하고 익숙해지기를 원합니다. 최근에 간단한 bash 스크립트가 실행되지 않는 문제를 해결했습니다. bash 스크립트와 해당 출력을 /Users/myusername/경로 로 이동해야했습니다 . 내가 /Users/myusername/Desktop/. 이 게시물은 여기에서 찾을 수 있습니다.https://stackoverflow.com/questions/64110897/simple-bash-script-doesnt-cron-properly?noredirect=1#comment113370465_64110897

내 질문 : 모든 bash 및 python 스크립트가 /Users/myusername항상 경로에 있어야 합니까? 해결 방법이 없습니까?

답변

3 Seamus Sep 30 2020 at 13:36

질문:

내 질문 : 모든 bash 및 python 스크립트가 /Users/myusername항상 경로에 있어야 합니까? 해결 방법이 없습니까?

대답:

아니요. 원하는 곳에서 bash 및 python 스크립트를 찾을 수 있습니다. 그러나 추가 요구 사항이 있습니다 .

  1. 당신의 cron작업은 다른 실행 환경 당신이 그들을 실행할 때보다 더; 예 : $PATH. 따라서에서 스크립트를 지정 하려면 전체 경로 사양 을 사용해야 합니다 crontab. 예를 들어 사용 :
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
  1. 내 Mac (Catalina)에서 "전체 디스크 접근"권한을 cron. 다른 OS 버전의 YMMV. 방법은 다음과 같습니다.

System Preferences -> Security & Privacy -> Privacy 탭 :

  1. 동안 적어도 디버깅 당신의 cron일을, 어떤 오류 메시지 (리디렉션 고려해야 stderr파일로를) - 그렇지 않으면에서 바람을 /dev/null하는 것은 도움이되지 않습니다! 위의 예를 계속합니다.
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py >> /Home/<username>/MyCronLog.txt 2>&1
2 bmike Sep 29 2020 at 07:24

요소에 대한 권한을 부여하고 모든 것에 대해 전체 경로를 사용하는지 확인해야 할 수도 있습니다. 대화 형 셸에있을 때 스크립트가 실행된다고해서 제한된 셸에서 올바른 것은 아닙니다.

다음은 최근 질문에 대한 슈퍼 디버깅 팁 입니다.

  • cron 및 "명령을 찾을 수 없음"
  • cronjobs가 실행되지 않습니다
  • cron을 통해 스크립트를 실행하려고 할 때 알 수없는 명령 오류 발생