전 이것 저것 생각하기 귀차나서.. 간단하게 허접 스크립트를 짜서 쓰고 있었는데여.. #!/bin/sh while [ 1 ] do check=`ps aux | grep pppd | wc -l` echo $check if [$check -lt 2 ] then echo pppd dead pppoed else echo pppd ok fi sleep 60 done 그냥.. 어쩌다 테스트 삼아 뚝딱 하구 만든건데.. 조잡해도.. 돌아가긴 잘 돌아가네여.. (어짜피 머리 나뿌고 게을러서 간단한 소스 가지고 최적화니 머니 신경 안씁니다. ) 잘 돌아가지라도 않으면.. 다른 좋은 방법들로 교체 할건데.. 헤헤. 그리고 채윤기님 사이트는 코넷 과의 문제(?) 로.. 아래 사이트로 옮긴듯 합니다. http://tulbo.homeip.net/adsl/ 그럼 좋은 팁들 감사 드립니다.. (왜 진작에 이런 생각을 못했을 까.. -.-a) : 아래와 같이 할 경우 일정 시간마다 체크해서 끊어졌을 경우 다시 접속하죠? : 이 방법을 사용하면 끊어질때마다 바로바로 다시 접속해줍니다. : : 1. /etc/ppp/options 파일에 다음을 추가해줍니다. : nodetach : : 2. 다음과 같은 스크립트를 만듭니다. : #!/bin/sh : while true : do : pppd eth0 > /dev/null : done & : : 끝입니다. 만들어준 스크립트를 실행해주면 됩니다. : : /etc/ppp/options 파일에 nodetach를 추가해주면, pppd를 실행하고나서 : 접속이 끊길때까지 프롬프트가 다시 뜨지 않습니다. 즉, 포그라운드로 돌아갑니다. : 따라서 위와같은 스크립트를 돌려도 접속이 끊길때까지 pppd를 다시 실행하지 않게 됩니 : 다. 접속이 끊기면 자동으로 다시 접속하구요. : 물론 어떤 방법으로 접속하느냐에 따라서 스크립트에서 pppd eth0 : 라고 적어놓은 부분에 들어갈 내용이 바뀌겠죠. : 위의 예는 커널 2.4와 PPPOE패치된 PPPD를 이용할 경우입니다. : : 데비안을 사용하는 경우 스크립트를 /etc/ppp/ppp_on_boot 라는 이름으로 : 만들어두기만 하면 부팅시 자동으로 접속됩니다. : : 유용하게 쓰시기 바랍니다. : 그럼.. : : : : : 본 스크립트는 채윤기님의 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/l : og/adsl.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> -- Mins