cron이 예약된 작업을 "건너뛰는" 이유

cron이 예약된 작업을 "건너뛰는" 이유

내 서버에 crontab으로 예정된 작업이 3개 있는데 두 번째 작업이 자동으로 실행되지 않습니다.

\# m h  dom mon dow   command
*/5 * * * * ~/dbCron.sh
00 09 * * * ~/dbCron_daily_backup.sh           <--------- this is skipping
55 23 * * * ~/backup_logs.sh && ~/clear_logs.sh

그렇다면 적시에 실패하지 않고 작업을 실행할 수 있는 솔루션은 무엇일까요?

답변1

스크립트가 실행 중이지만 실패합니다. 스크립트의 절대 경로(예: "/home/yourid/bin/dbCron_daily_backup.sh")를 사용하고 모든 명령에 대해 절대 경로를 사용하도록 스크립트를 편집/수정하세요. 환경 문제가 있을 수 있으며, 이는 스크립트 상단에서 적절한 환경 구성을 가져오면 해결할 수 있습니다.

cronjob 동작을 관찰/모니터링할 수 있도록 로그 디렉토리를 만드십시오.

mkdir /home/yourid/log/

이것은 crontab 동작을 기록하는 데 사용할 수 있는 관용구입니다(작업을 기록할 장소가 있다고 가정). 이는 표준 출력과 표준 오류를 캡처합니다.

#periodic db work,
*/5 * * * * (cd /home/yourid/; bin/dbCron.sh) 2>&1 >> /home/yourid/log/dbcron.log
#db daily backup
00 09 * * * (cd /home/yourid; bin/dbCron_daily_backup.sh) 2>&1 >> /home/yourid/log/dbdailybackup.log
#db nightly cleanup
55 23 * * * (cd /home/yourid/; bin/backup_logs.sh && bin/clear_logs.sh) 2>&1 >> /home/yourid/log/dbnightlycleanup.log

#log system health,
0 * * * * (cd /opt/myapp/;util/DiskCheck.pl) 2>&1 >> /home/yourid/log/health.log

진행 상황을 기록할 수 있도록 스크립트의 시작과 끝 부분에 날짜/시간이 포함된 메시지를 인쇄할 수 있습니다.

#!/bin/bash
echo "begin $0 " `/bin/date +%y%m%d%H%M%S`
echo do stuff
echo "done $0 " `/bin/date +%y%m%d%H%M%S`

관련 정보