파일에 로그를 기록하는 스크립트

파일에 로그를 기록하는 스크립트

예를 들어, 특정 주소에 ping을 보내는 스크립트를 작성하려고 하는데 Google.com연결이 끊어지면 로그를 파일에 기록합니다. 나는 무엇을 해야할지 모르겠습니다. 예:

ping goodle.com 

연결되어 있으면 핑만 보내세요

연결되지 않은 경우 파일에 로그를 씁니다.

답변1

가장 간단한 형태로 다음을 수행할 수 있습니다.

ping -c2 google.com 2>&1 >/dev/null || echo "$(date) host not available" >> /tmp/mylogfile

pingping이 가능하면 일반적으로 성공(종료 코드 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

이로 인해 pingGoogle에 두 번 핑을 시도하게 됩니다. 실패하면( ping0이 아닌 종료 상태를 반환) 로그 파일에 메시지가 추가됩니다.

관련 정보