
저는 1시간마다 5개의 호스트에 ping을 보내는 쉘 스크립트를 작성하려고 하는데, 이 호스트 중 하나에서 오류가 수신되면 실패한 ping 결과가 포함된 이메일 경고를 보냅니다.
답변1
다음과 같이 작동해야 합니다.
#!/bin/bash
ping_targets="server1 server2 server3 server4 server5"
failed_hosts=""
for i in $ping_targets
do
ping -c 1 $i > /dev/null
if [ $? -ne 0 ]; then
if [ "$failed_hosts" == "" ]; then
failed_hosts="$i"
else
failed_hosts="$failed_hosts, $i"
fi
fi
done
if [ "$failed_hosts" != "" ]; then
echo $failed_hosts| mailx -s "Failed ping targets" email@domain
fi
이를 스크립트에 넣고 호스트 이름과 이메일 주소를 변경하여 실행 가능하게 만들고 cron에 항목을 추가하여 매시간 실행합니다.