본문 바로가기
관심종목/GNU

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

by 신의손길 2013. 6. 16.

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