crontab을 통해 트리거될 때 Mailx 또는 mail 명령에 본문이 포함되지 않습니다.

crontab을 통해 트리거될 때 Mailx 또는 mail 명령에 본문이 포함되지 않습니다.

Apache 서버의 프로세스를 확인하고 프로세스가 다운되면 이메일을 보내는 스크립트를 만들었습니다.

apache_down=`service httpd status | grep "inactive (dead)"`
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]

스크립트는 수동으로 실행하면 제대로 작동합니다. 올바른 제목과 본문 "$apache_down"이 포함된 메일을 보냅니다.

그러나 crontab 아래에 배치하면 본문이 아닌 제목만 메일로 보냅니다.

*5 * * * * script.sh >/dev/null 2>&1

본문은 "" 만으로 비어 있습니다. 나는 mail -s를 사용했고 같은 결과를 얻었다. 내 스크립트, crontab 또는 mailx 설정에 문제가 있습니까?

답변1

을 체크 해봐$PATH명령 실행을 위해 올바르게 설정된 경우 변수를 설정하고, 그렇지 않은 경우 스크립트 또는 일반적으로 cron에 대해 설정합니다. $PATH가 바이너리에 대해 적절하게 설정되지 않은 경우,서비스명령이 실행되지 않거나 다음과 같이 실행하여 수동으로 추가해야 합니다./usr/sbin/서비스

또한 변수에 스크립트 내부에 출력이 있는지 확인을 추가해 보세요.

if [[ -n "$apache_down" ]]
then
echo “$apache_down" | mailx -s “APACHE_DOWN_`hostname`” [email protected]
else
echo "apache running fine" | mailx -s “APACHE_Running_`hostname`” [email protected]
fi

관련 정보