Cronjob 이메일 제목을 수정하는 방법 실행되면 스크립트 출력과 함께 이메일을 수신합니다. 이메일은 다음과

Hostmonster.com에서 호스팅하는 6 가지 크론 작업을 실행하고 있습니다. 크론 작업이 실행되면 스크립트 출력과 함께 이메일을 수신합니다.

이메일은 다음과 같은 형식으로 제공됩니다.

보낸 사람 : Cron Daemon
제목 : Cron / ramdisk / bin / php5 -c /home5/username/scheduled/optimize_mysql.bash

이것의 문제점은 이메일의 제목이 이메일과 관련된 cronjob을 읽기가 매우 어렵다는 것입니다.

보다 쉽게 ​​읽을 수 있도록 cronjob 이메일의 제목을 수정하는 방법이 있습니까?

예를 들면 다음과 같습니다.

보낸 사람 : Cron Daemon
주제 : MySQL 데이터베이스 최적화


답변

내 시스템 (대부분의 데비안)에서 crontab-entry라고하는 스크립트 / 프로그램의 모든 출력 account@localhost은 cron을 시작한 사람에게 전자 메일로 전송됩니다 . 이 이메일에는 귀하와 같은 제목이 있습니다.

이메일을 받으려면 자체 출력이없는 스크립트를 작성하십시오. 그러나 대신 모든 출력을 텍스트 파일에 넣으십시오.

그리고

mail -s 'your subject' adress@where < textfile

당신이 원하는 방식으로받습니다.


답변

또는 sh noop 명령 (:)을 사용하십시오.

0 9-17 * * 1-5    : Queue Summary; PATH=/usr/sbin qshape

주제는 여전히 우스꽝스럽게 보이지만 적어도 설명 적이며 외부 스크립트가 필요하지 않습니다.


답변

cron 작업 출력을 메일로 직접 파이프 한 다음 제목 줄을 채울 수 있습니다. 2>&1구문 그렇지 사라질 오류 출력을 보낸다.

mycmd 2>&1 | mail -s "mycmd output" myname

답변

출력과 stderr을 ‘mailx -E’로 파이프하여 명령 출력 (또는없는 경우)을 전송하는 책임을 맡습니다. 예를 들면 다음과 같습니다.

0 * * * * your-command 2>&1 | mailx -E -s "Descriptive Subject" $LOGNAME

Mailx의 ‘-E’옵션은 크론과 마찬가지로 보낼 출력이 없으면 메일을 보내지 않기 때문에 좋습니다.


답변

또 다른 해결책은 원하는 명령을 사용하여 올바른 명령을 호출하는 쉘 스크립트를 작성하는 것입니다. 귀하의 예에서 이것은 다음과 같습니다.

#Optimize_MySQL_Database.sh

/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

crontab 파일에서 bin 디렉토리를 설정하여 경로에 bin 디렉토리를 포함시킬 수 있습니다.


답변

이것을 시도하십시오-명령 행에서 다음 코드를 구현하십시오-

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" YOUR@MAIL.COM.**
  • 이것은 단지 당신을 안내하는 참조입니다