다음은 서버 y의 상태를 찾기 위해 다른 x로 작성된 쉘 스크립트입니다. (서버 y에는 메일을 받는 기능이 없어서 쓰지 않았습니다)
#!/bin/bash
target=10.9.34.52
count=$( ping -c 5 $target | grep icmp* | wc -l )
if [ $count -eq 0 ]
then
echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is DOWN Please check your server ASAP" | mail -s " Dev Tomcat Server Status" [email protected]
else
echo "The Tomcat Dev server GMP_Dev_Tomcat_cvgrhegmpd003 with ip address 10.9.34.52 is UP and WORKING"
fi
어떤 알림도 받지 못합니다. shell
1분마다 실행되는 스크립트를 추가했습니다 . crontab -e
하지만 스크립트를 실행하면 ./scriptname.sh
메일이 도착합니다(서버가 시작될 때 확인 중입니다).
답변1
Joel이 언급했듯이 셸에서 실행되는 크론이 실패하면 일반적으로 환경 문제입니다.
>> /home/myuser/myscript.log
cron에서 cron 줄 끝에 추가한 다음 cron이 실행된 후 파일을 읽어 스크립트 출력을 기록해 보세요.
유사한 항목을 많이 찾을 수 있으며 -bash: ping: command not found
, 이 경우 스크립트에서 절대 경로를 사용해야 합니다(예: /bin/ping
대신 ping
). 이를 사용하여 which [command]
명령의 절대 경로를 찾을 수 있습니다.