>> Delete Reply from No. 517 article
No. RE: expect로 라우터 설정 바꿔 보기

등록 2000-05-25 01:29:00     조회 5
이름 서록    

		오호....
정말 재미있게 봤습니다.
으으...전 왜 expect 써먹을 생각 모하고 프로그램 짜기만 했을까요.
역시....밥텅에 가까운 생각였음을...
멋집니다. 단점이 가장...
솔직담백한....유용한 정보이군요.
 늘 즐거운 시간&리눅싱 되시길...
                                                   서로기 였지요.
  : 리눅스 가지고 뭔가 쓸데 없는 짓을 해보기 위해 머리를 굴리다가
: 유용하게 잘써먹고 있어서 올려 봅니다.
:
:
: 라우터 설정값 변경하는 꽁수(손안대고 코풀기)
: 목적 : 일정시간마다 반복적으로 라우터 설정을 바꿀일이 있을때 
: 개요 : 하이텔 자동접속 스크립트작성해서 사용하던 expect를 이용하여
:        시스코 라우터에 접속하여 설정값을 변화 시키고 이것을 크론을
:        이용하여 주기적으로 실행하게 한다.
: 의의 : 된다.
: 성과 : 쓸데 없는 일에 힘을 낭비 했다.
: 단점 : 보안이 중시되는 환경에서는 함부로 실행하면 안된다.
:        설정화일의 퍼미션 관리를 잘해서 라우터의 패스워드가
:        유출되는 것을 철저히 막아야 한다.
:        나말고는 이런짓을 해볼 사람이 절대 없다.
:        초기 노가다가 상당히 많이 든다.
:        모조리 설정해놓고 오래동안 사용하다 보면
:        나중에는 라우터 설정 명령어를 까먹는다.
:
: 사용예 : 시스코 라우터 시리얼 포트별 crc에러 주기적 삭제
:          시리얼 포트별 crc에러 발생 현황 삭제전  로그 화일 기록
:          한달에 한번씩 전관서 라우터에서  ping 테스트및 결과값 기록
:          퇴근시간 마다 네트웍을 막아야할 관서에 해당되는 시리얼 포트
:          다운시키기. 라우터에 기록되어 있는 로그화일 갈무리
:          등등등 별짓 다해볼수 있음..
:         
: 예제 화일
: #/etc/crontab
: #/etc/crontab 화일에 아래와 같은 두줄을 입력합니다.
: 40 08 * * * root /usr/bin/noshut >> /tmp/log.outup 2>&1
: #아침 08시40분에 셔트다운 시켜던 포트를 업시키는 명령줄
: #명령 실행중 에러가 발생하면 tmp디렉토리에 log.outup이라는 화일에 기
록
: 10 18 * * * root /usr/bin/shutdown1 >> /tmp/log.out 2>&1
: #저녁 18시 10분에 라우터의 시리얼 포트를 다운 시키는 명령줄
:
:
:
: 패스가 지정된 디렉토리에 아래와 같은 화일을 만듬니다.
:
: #!/usr/bin/expect
: #화일명:/usr/bin/shutdown
: spawn telnet 10.11.1.1
: expect -re "password:" #1차 패스워드 입력 기다림
: send "babo
"          #1차 패스워드 입력
: expect -re "Router>"   #일반유저 모드
: send "en
"            #enable 패스워드 입력 모드
: expect -re "password:" #2차 패스워드 입력 기다림
: send "babo
"          #2차 패스워드 입력
: expect -re "Router#"   #이거이 라우터 루트 프롬프트.히히
: send "conf t
"        #콘피그 모드로 가자
: expect -re "Router#(config)#" #콘피그 모드
: send "int s3/2
"             #인터페이스 시리얼3/2번을 수정하자
: expect -re "Router#(config-if)#" #인터페이스 설정모드에서 입력 기다림
: send "shut
"                    #shutdown 명령 입력
: expect -re "Router#(config-if)#"
: send "
"                      #콘피그모드에서 빠져 나가는 명령
(ctrl
: + z)
: expect -re "Router#"             #루트 모드상태
: send "q
"                       #종료
: interact
:
:
:
: #!/usr/bin/expect
: #화일명 : /usr/bin/noshut 다운시켰던 포트를 다시 업시키는 화일
: spawn telnet 10.11.1.1
: expect -re "password:"
: send "babo
"
: expect -re "Router>"
: send "en
"
: expect -re "password:"
: send "babo
"
: expect -re "Router#"
: send "conf t
"
: expect -re "Router#(config)#"
: send "int s3/2
"
: expect -re "Router#(config-if)#"
: send "no shut
"    #요거만 다름 no shutdown 명령 입력
: expect -re "Router#(config-if)#"
: send "
"
: expect -re "Router#"
: send "q
"
: interact
:
: 이상 끝..
:
: [요청및 부탁]
: 사실은 이글을 올린 실제 이유는 이겁니다.
: 아래 화일을 제가 이 1원짜리 팁란이 있는줄 모르고
: 떠들어 보세 란에 올렸다가 이장님이 팁란으로 올리라고 하시길래..
: 이게 팁이 될수는 없고 해서 쓸데 없이 윗글 올렸습니다.
: whatsUP(www.ipswitch.com)이라는 윈도우용 핑프로그램이 있지만
: 웬지 윈도우 핑보다는 리눅스 핑이 더 믿음직스러워서
: 그럼니다.
: 너무 폼이 안나서 그러는데  업그레이드좀 시켜주시면 고맙겠습니다.
: 스크립트화일인데 이걸 perl로 바꿔 주신다거나 C로 짜주시면
: 성은에 망극하겠습니다.
:
:
: #ping.sh(Rev.0.5)
: cont="true"
: while [ $cont = "true" ] 다 아시는 루프 정의
: do
: echo "선로 검색중입니다." #순환될때 마다 출력되는 메시지
:
: ping -c 1 10.11.4.1> nul
: #핑 을 때리는데 딱 1개만 보내고 출력은 nul로 보냄
:  hoho=$?
: #핑을 친 결과값은 hoho이다 라고 정의
:  if [$hoho = "1" ]; then
: #만일 hoho값이 1이면(응답이 없는 경우 1, 응답이 있으면 0임)
:  echo "앞집 속도:T1  Tel:123-5678선번:123452"
: #관서이름과 속도, 전화번호, 선번을 출력해라.
: fi
:
: ping -c 1 10.11.8.1 > nul
:  hoho=$?
:  if [$hoho = "1" ]; then
:  echo "관서명: 뒷집 속도:T1 Tel:0331-123-4567,선번:123220"
:  fi
:
: ping -c 1 10.11.4.1> nul
:  hoho=$?
:  if [$hoho = "1" ]; then
:  echo "옆집 속도:T1  Tel:321-7654선번:456220"
:  fi
: .
: . # 관서 수많큼 적어 넣음
: .
: done
:
:
: 위의 스크립트를 실행시킨 예.
:
: 선로 검색중입니다.
: 미아리,속도:56K Tel:422-2xxx,선번:123456 #ping 응답이 없으면 이렇게
표
: 시됨
: 선로 검색중입니다.
: 미아리,속도:56K Tel:422-2xxx,선번:123456
: 선로 검색중입니다.
: 선로 검색중입니다.                      #정상이면 요 메시지만 나옴
: 선로 검색중입니다.
: 선로 검색중입니다.
: 선로 검색중입니다.                     
: 선로 검색중입니다.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved