2011-04-05 2 views
1

내가 CakePHP는 1.3을 사용하고 내가 이쪽 CakePHP Book.는 CakePHP의 쉘 크론 이메일 오류

*/5 * * * * /full/path/to/cakeshell myshell myparam -cli /usr/bin -console /cakes/1.2.x.x/cake/console -app /full/path/to/app >> /path/to/log/file.log 

에 주어진 예제를 사용하여 쉘을 실행하는 cron 작업을 설정을 성공적으로 할 수 있었다 로그에 결과를 출력합니다 파일이 있지만 오류가 발생하면 이메일을 수신하여 문제를 해결할 수 있습니다. 나는 운없이 다음을 시도했다.

  1. >> /path/to/log/file.log를 제거하면 성공적인 실행까지 이메일로 전송됩니다.
  2. >/dev/null, 내 가정은 성공적으로/dev/null 및 오류를 전자 메일로 보냈습니다. >/디바이스/널
  3. 1, 어떤 도움도 감사 2

의 또 다른 변화를 시도했다.

감사

답변

0

Huseyin,

이는 CakePHP의 오류가 아닙니다, 당신은 스크립트 솔루션을하는 것처럼, 어쩌면 질문에 더 적합 저기 serverfault에 대한 것입니다.

배쉬 (Bash)의 기본 제공 기능은 쉘 스크립팅에 대한 The linux documentation project's 입문 튜토리얼과 #man bash을 사용해보십시오.

당신의 솔루션은 기본적으로 마지막 cron 작업 실행 결과를 저장하는 임시 파일이나 변수를 사용해야합니다. 다른

cat THE_TMP_FILE | mail -s "Error from Server Huseyin's server" [email protected]_domain.com

: 오류가있는 경우 cat THE_TMP_FILE >> blah.blah.log

불행히도, 당신은 mail 명령을 만들기 위해, MTA를 사용할 필요가있다. mail 명령에 액세스 할 수없는 경우 첫 번째 시간 다음에 다른 cron 작업을 설정하면 간단히 실행됩니다. if [ -e THE_FILE_CONTAINING_THE_LAST_ERROR]; then { echo $(cat THE_FILE_CONTAINING_THE_LAST_ERROR); rm -v THE_FILE... ;} ; fi

물론이 코드는 작동하지 않지만 꽤 가깝습니다. 생각.

+0

시도해보고 효과가 있는지 알려 드리겠습니다. 감사합니다. – Huseyin

+0

쉘을 사용하려고 할 때마다 CakePHP가 출력 할 것이므로 실패한 전자 메일 만받는 쉬운 방법은 없습니다. – Huseyin