본 스크립트는 채윤기님의 adsl 접속 스크립과 같이 돌아가야 한다.
채윤기님의 adsl 접속 스크립트를 구할 수 있는 곳
채윤기님 홈페이지 : http://soback.kornet.nm.kr/~eezen/ 전에 아래 스크립을 채윤기님 페이지에서
본거 같은데 못찾겠군요. 1. 아래 스크립을 각각의 디렉토리로 갖다 둡니다.
2. root의 crontab -e 로 일정 시간에 한번씩 체크하도록 해줍니다.
ex> */5 * * * * /usr/local/sbin/ifstat
3. root로 touch /var/log/adsl.log 를 만들어 준다.
4. 참고로 /tmp/ifstating 이 adsl이 연결되어있는가를 확인하는 동안에
생성되는 화일입니다. 끝나면 알아서 지워줍니다.
혹시라도 저 화일 때문에 스크립트가 잘못 돌아가는 일이 있을 겁니다.
수동으로 돌릴 시에는 꼭 ifk 를 돌려주세요.
==== /etc/rc.d/rc.adslconnect ====
#!/bin/sh
ifconfig eth0 down
sleep 1
#ifconfig eth1 down
sleep 1
ifconfig eth0 .0.0 mtu 1462 up
#ifconfig eth0 mtu 1462 up -arp -broadcast
sleep 1
ifconfig eth1 192.168.1.1 mtu 1462 up
sleep 2
/usr/local/sbin/pppoed -I eth0 -d 7
==== /usr/local/sbin/ifstat ====
#!/bin/sh
# 작성자 : Embryo at hitel.net # 수정자 : seha
# File Name:/usr/local/sbin/ifstat
# Log File : /var/log/adsl.log
# Date : 2000. 11. 06.
#
# 채윤기님의 rc.adslconnect와 함께 돌려서 ppp 접속이 끊겼을 경우에 재접속을 해준다.
# root의 cron에 알맞는 시간으로 돌리도록 한다.
#
# MYSO의 경우 pppd 연결시 나오는 remote IP 값으로 정해준다.
#
MYSO='211.196.65.18' # KORNET 지역 ROUTER ADDR. 혜화
PING_STATUS="`ping -c 3 211.196.65.18 | grep max | awk -F "/" '{print $4}'`" # ping avg
PSTAT="`ping -c 5 ${MYSO} | egrep -c time`" #ping status
echo "ping status = ${PSTAT}"
if [ -f /tmp/ifstating ]; then
#ifstat이 실행중일 경우에는 건너뛴다!
echo "`date +%T_%Y%m%d_%a` : ifstat is running already" >> /var/log/adsl.log
else
# ping 이 1000을 넘어가거나 응답이 없는 경우 재접속 시도.
if [ ${PING_STATUS} > 1000 ] || [ ${PSTAT} != 5 ]; then
`touch /tmp/ifstating`
while [ ${PSTAT} = 0 ]; do
echo "`date +%T_%Y%m%d_%a` : ADSL connection is not available" >> /var/log/a
dsl.log `/sbin/ifconfig ppp0 down `
`killall -9 pppoed`
`killall -9 pppd`
sleep 60
`/etc/rc.d/rc.adslconnect` #adsl 연결 스크립
echo "`date +%T_%Y%m%d_%a` : Tring to connect ADSL" >> /var/log/adsl.log
sleep 10
PSTAT="` ping -c 5 ${MYSO} | egrep -c time `" #ping status
if [ ${PSTAT} = 0 ]; then
echo "`date +%T_%Y%m%d_%a` : Cauld Not Connect ADSL" >> /var/log
/adsl.log echo
else
echo "`date +%T_%Y%m%d_%a` : Re-connected ADSL" >> /var/log/adsl
.log echo
fi
done
`rm -f /tmp/ifstating`
else
`rm -f /tmp/ifstating`
fi
echo "`date +%T_%Y%m%d_%a` : ADSL connection is available" >> /var/log/adsl.log
fi
==== /usr/local/sbin/ifk ====
#!/bin/sh
`killall -9 ifstat`
`rm -rf /tmp/ifstating`
ps. 흥주야 잘 보아라 ;--<p align="right">
- your theatre, since 1976
</p>