예를 들어, 특정 주소에 ping을 보내는 스크립트를 작성하려고 하는데 Google.com
연결이 끊어지면 로그를 파일에 기록합니다. 나는 무엇을 해야할지 모르겠습니다. 예:
ping goodle.com
연결되어 있으면 핑만 보내세요
연결되지 않은 경우 파일에 로그를 씁니다.
답변1
가장 간단한 형태로 다음을 수행할 수 있습니다.
ping -c2 google.com 2>&1 >/dev/null || echo "$(date) host not available" >> /tmp/mylogfile
ping
ping이 가능하면 일반적으로 성공(종료 코드 0)을 반환하고, 그렇지 않으면 0이 아닌 코드를 반환하므로 두 번째 경우에만 에코가 수행됩니다. ( -c2
핑을 두 번만 의미하며, ping
일반적으로 중지할 때까지 계속해서 시도합니다.)
답변2
if ! ping -c2 google.com >/dev/null 2>&1; then
printf '%s\tgoogle.com not reachable\n' "$(date)" >>logfile
fi
이로 인해 ping
Google에 두 번 핑을 시도하게 됩니다. 실패하면( ping
0이 아닌 종료 상태를 반환) 로그 파일에 메시지가 추가됩니다.