cron 로깅이 작동하지 않지만 일부 명령에서는 작동하지 않습니다.

cron 로깅이 작동하지 않지만 일부 명령에서는 작동하지 않습니다.

중복 가능성:
datecron 탭 작업을 실행하는 방법은 무엇입니까 ?

Amazon EC2에 cron을 사용하여 백업 스크립트를 실행하는 서버가 있습니다. 그러나 작동하지 않습니다. cron이 제대로 작동하는지 테스트하기 위해 다음을 수행했습니다.

서버에 로그인하고 루트로 전환합니다. 그런 다음 "crontab -e"를 실행합니다. 다음 줄이 있습니다.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

29 00 * * thu tar -zcvf /home/<user removed>/Dropbox/Backup/DirBackup_$(date +%Y%m%d).tar.gz /var/www/html/
30 00 * * thu mysqldump -u <removed> -h <removed> -p<removed> --opt <removed> > /home/<user removed>/Dropbox/Backup/database-backup-$(date +%Y%m%d).sql
*/1 * * * * touch /tmp/foo

따라서 touch 명령은 1분마다 실행해야 하며, 다른 명령은 목요일 00:29 및 00:30에 실행해야 합니다. 로그 내용은 다음과 같습니다.

Sep 20 00:27:01 ip-10-204-142-149 CROND[16888]: (root) CMD (touch /tmp/foo)
Sep 20 00:28:01 ip-10-204-142-149 CROND[16890]: (root) CMD (touch /tmp/foo)
Sep 20 00:29:01 ip-10-204-142-149 CROND[16898]: (root) CMD (tar -zcvf /home/<user removed>/Dropbox/Backup/DirBackup_$(date +)
Sep 20 00:29:01 ip-10-204-142-149 CROND[16900]: (root) CMD (touch /tmp/foo)
Sep 20 00:30:01 ip-10-204-142-149 CROND[16913]: (root) CMD (mysqldump -u <removed> -h <removed> -p<removed> --opt <removed> > /home/<user removed>/Dropbox/Backup/database-backup-$(date +)

/tmp/foo 폴더의 타임스탬프를 확인하면 1분마다 변경됩니다. Dropbox를 확인해보니 파일이 없습니다. (Dropbox 업로드 문제가 아닌지 확인하기 위해 "ls /home//Dropbox/Backup/"을 사용하여 이 문제를 확인했습니다.) 그래야 합니다! cron의 명령을 명령줄에 복사/붙여넣어 이를 테스트했는데...훌륭하게 작동했습니다!

cron이 명령을 기록하지만 실제로는 작동하지 않는 이유를 아는 사람이 있습니까?

답변1

분명히 이것은 cron 구문의 문제입니다. 이 문제를 해결하기 위해 명령을 스크립트에 넣고 다음을 사용했습니다.

58 23 * * 6 root exec /home/<username>/Dropbox/backups

이 스크립트는 매주 토요일에 실행되며 제대로 작동하는지 테스트했습니다.

관련 정보