나는 많은 일반적인 오류를 제거하려고 노력했다.
cron에 PATH를 사용할 수 있는지 확인
crontab 파일의 끝에 끝이 있습니다
시간대는 다음에 의해 설정됩니다.
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
date
bash에서 실행 하면 다음을 얻습니다.
Tue Sep 17 15:14:30 SGT 2013
cron이 같은 시간을 사용하고 있는지 확인하기 위해,
* * * * * date >> date.txt
date.txt에서 동일한 날짜 출력을 제공합니다.
이것은 내가 실행하려고하는 스크립트입니다.
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
를 사용하면 crontab -e
아래 줄이 작동합니다.
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
그러나 다른 인수를 시도했을 때 오후 2시 50 분에 실행되기를 바랍니다.
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
또는
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
더 이상 작동하지 않습니다. 내 시간 인수에 문제가있는 것 같습니다. /tmp/debug.log
파일 에서 아무것도 찾을 수 없습니다 .
해결책:
TZ를 변경 한 후 cron 서비스를 다시 시작해야합니다.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
을 date
나타내는 지 확인 하십시오. crontab 내에서 TZ 환경 변수를 설정하면 cron 데몬 자체에서 사용하는 시간대에는 영향을 미치지 않지만 cron을 통해 시작된 프로세스 에는 영향을 미치므로 crontab에서 TZ를 설정하면 일시적으로 주석 처리하는 것이 좋습니다. 대신 시스템 시계의 시간대를 사용하여 시간을 설정하십시오 (리눅스를 단일 부팅하는 경우 UTC 일 수 있지만 현지 시간 일 수 있음).
~/event.sh
시도해보십시오/home/username/event.sh