매시간 핑을 보내고 이메일로 실패하는 스크립트

매시간 핑을 보내고 이메일로 실패하는 스크립트

저는 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에 항목을 추가하여 매시간 실행합니다.

관련 정보