다음과 같이 사용자 crontab 파일을 구성했습니다.
*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh
그러나 실행되지 않습니다. 나는 10-15 분을 기다렸다. 왜?
auto-update.sh 명령은 수동으로 실행하면 쉽게 실행됩니다. 실행 체인을 분리하고 스크립트를 cron에서 실행하려면 어떻게해야합니까?
답변
크론 작업이 실행되는 환경은 대화식 쉘과는 약간 다릅니다. 스크립트가 실행 중이지만 성공적으로 실행되지 않았을 수 있습니다. 가장 큰 차이점 중 하나는 cron 작업의 경우 기본 PATH는 “/ usr / bin : / bin”이므로 / usr / bin 또는 / bin에없는 명령을 사용하면 명령이 사용되지 않습니다. 스크립트가 자체 PATH를 설정하거나 명령에 대한 명시 적 경로를 제공하지 않는 한 발견되었습니다. 다른 큰 차이점은 단순히 대화 형 세션에 연결되어 있지 않기 때문에 대화 형 (터미널에서 읽은 등) 무언가를 시도하면 실패합니다. cron 항목을 다음과 같이 변경하십시오.
*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh >>/tmp/auto-update.log 2>&1
… 로그에 유익한 정보가 있는지 확인하십시오.
답변
말하기는 어렵지만 5 분마다 두 번째 크론 작업을 추가하여 메시지를 system.log에 기록하는 시스템 작성 도구를 호출하면 어떻게됩니까?
0,5,10,15,20 * * * * /usr/bin/logger "cron is working"
그러면 cron이 문제의 사용자를 위해 실행되고 있으며 cron을 시작하거나 스크립트를 수정하여 제한된 cron 환경에서 실행되도록 집중할 수 있습니다. (벽 시계를보고 곧 또는 앞으로 몇 분 동안 나오는 몇 번을 선택할 수 있습니다. .)
답변
이 질문을한지 오래되었지만이 스레드에는 해결책이없는 것 같습니다.
사용자 crontab을 작성하는 방법에 따라 편집 한 후이를 실행해야 할 수도 있습니다.
crontab ~/.yourcrontabfile
새 crontab (수정 후)이 활성화되었는지 확인하려면 다음을 확인하십시오.
crontab -l
답변
나는 같은 문제가 있었다. bash 스크립트의 경로를 추가해야합니다.
#!/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin
답변
나는 같은 문제가 있었다. 내 crontab 파일에서 작업 후 줄 바꿈을 추가 한 후에 사라졌습니다 (전체 crontab n00b 이므로이 동작이 널리 알려져 있는지 여부는 알 수 없습니다).