관심종목/GNU

생애 최초 쉘스크립트.. 주기적으로 ping 확인하여 ifconfig로 리셋하기

신의손길 2013. 6. 16. 09:03

LCD가 고장난 노트북을 받아 스크린은 때버리고, 본체만 모니터를 붙여 리눅스 머신으로 쓰고 있는데..

불규칙적으로 NIC가 동작을 멈춰버린다. ifconfig down & up을 해주면 다시 살아나지만.. 얼마 안있다가

또..!!


그래서, 생전 해보지도 관심도 없었던 쉘 스크립트를 짜봤다. 심하게 단촐하지만, 나름 3시간 구글링해가며

성공했다. :) 코드가 부끄럽지만, 과감하게 공개해본다. 나같은 초보도 분명 있을 것이기에..

조금만 찾아보면 각 라인이 무엇을 의미하는지는 파악할 수 있으리라 보기에 이하 #주석은 생략한다!


#!/bin/sh

SEC="$1"

while [ 1 ];do
stat=$(ping -c 1 192.168.0.1|grep -o ttl)

if [ "$stat" != "ttl" ];then
clear
echo "Network error. Resetting..."
echo "ifconfig eth0 down & up"
sleep 2

ifconfig eth0 down
sleep 10

ifconfig eth0 up
sleep 5
echo "Reset OK!"
sleep 2

else
clear
echo "Network Live...Sleep"
echo "Check again after $SEC Seconds!"
sleep $SEC

fi

done