server1에서 server2로 백업하기 위한 rsync 스크립트가 있습니다. 서버는 Centos 유형 Amazon Linux AMI입니다. 이 스크립트는 crontab을 통해 매일 실행됩니다. 백업이 완료되었으므로 cron이 실행되고 스크립트가 작동 중입니다. 로그가 생성되어 이메일로 당사에 전송되어야 합니다. 어떤 이유로 이런 일이 발생하지 않습니다. 스크립트를 수동으로 실행하면 메일이 보내지므로 메일 서버(Postfix)가 작동하고, rsync 스크립트 끝에 있는 메일 스크립트가 작동합니다. 아래에서 rsync 스크립트를 볼 수 있습니다.
에코 ":[이메일 보호됨]> /tmp/rsync_test.log 에코' 출처:[이메일 보호됨]>> /tmp/rsync_test.log echo "제목: 테스트 메일 >> /tmp/rsync_test.log 에코 "" >> /tmp/rsync_test.log cat /tmp/rsync_test.log 메일 보내기 -t |
이것이 작동하지 않는 이유와 해결 방법은 무엇입니까?
답변1
Cron 작업은 제한된 환경에서 실행됩니다. 특히 PATH 환경 변수에는 cat 또는 sendmail에 대한 경로가 포함되지 않을 수 있습니다.
전체 경로를 지정해 보세요.
/bin/cat /tmp/rsync_test.log | /usr/sbin/sendmail -t
이것은 내 추측이다.
정확한 이유를 알고 싶다면 cronatsk 설정 시 crontask 스크립트의 stdout 및 stderr을 로그 파일에 캡처해 보세요.
*/5 * * * * /your/scripts/task.sh >/somepath/file.log 2>&1
거기에서 오류 메시지를 알려줄 것입니다.