서버 경고용 Unix 쉘 스크립트

서버 경고용 Unix 쉘 스크립트

다음은 서버 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

어떤 알림도 받지 못합니다. shell1분마다 실행되는 스크립트를 추가했습니다 . crontab -e하지만 스크립트를 실행하면 ./scriptname.sh메일이 도착합니다(서버가 시작될 때 확인 중입니다).

답변1

Joel이 언급했듯이 셸에서 실행되는 크론이 실패하면 일반적으로 환경 문제입니다.

>> /home/myuser/myscript.logcron에서 cron 줄 끝에 추가한 다음 cron이 실행된 후 파일을 읽어 스크립트 출력을 기록해 보세요.

유사한 항목을 많이 찾을 수 있으며 -bash: ping: command not found, 이 경우 스크립트에서 절대 경로를 사용해야 합니다(예: /bin/ping대신 ping). 이를 사용하여 which [command]명령의 절대 경로를 찾을 수 있습니다.

관련 정보