콘솔에서 인터넷 연결을 확인하는 쉬운 방법이 있습니까? 쉘 스크립트에서 놀려고합니다. 인터넷 연결이 제대로 작동하는지 해석하기 위해 HTTP 응답 코드를 확인하고 확인하는 것이 하나의 아이디어 입니다. 그러나 결코 충돌하지 않는 사이트를 확인할 필요없이 쉬운 방법이 있어야한다고 생각합니다.)wget --spider http://www.google.co.in/
편집 : 개별적으로 검사 할 수있는 많은 요소가있을 수있는 것처럼 보입니다. 현재 내 의도는 내 블로그가 다운되었는지 확인하는 것입니다. 매분마다 확인하도록 cron을 설정했습니다. 이를 위해 블로그에 wget --spider의 HTTP 응답 코드를 확인하고 있습니다. 200이 아닌 경우 나에게 알립니다 (사이트에 과부하가 걸리고 시간이 초과되거나 매우 늦게 응답 할 수 있기 때문에 단순히 핑하는 것보다 낫습니다). 어제 인터넷에 문제가있었습니다. LAN이 제대로 연결되었지만 사이트에 액세스 할 수 없었습니다. 스크립트가 wget 응답에서 200을 찾을 수 없으므로 알림을 계속받습니다. 이제 인터넷에 연결되어있을 때 알림이 표시되는지 확인하고 싶습니다.
따라서 DNS 및 LAN 연결을 확인하는 것은 어떤 문제인지 알아낼 필요가 없기 때문에 약간의 과잉입니다. 어떻게하면 좋을까요?
다음은 내 블로그의 가동 중지 시간을 확인하는 스크립트입니다.
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
이 방법으로 블로그 응답 코드에 문제가있는 경우에만 인터넷 연결을 확인해야합니다. 핑을 사용하지 않기 때문에 조금 무겁지 만 잘못된 긍정을 나타내서는 안됩니다. 권리? 또한 페이스 북, google, yahoo 등과 같이 매번 다른 사이트에 핑을 무작위로 할당하는 방법은 무엇입니까? 그런 다음 사이트가 다운 될 때까지 추가 확인을 건너 뛰거나 더 긴 확인을 수행합니다 (1 분마다 10 분). 어떻게 생각해?