Programming/Shell2012. 4. 24. 16:47

특정 호스트에 자동으로 로그인할 수 있는 쉘 스크립트를 작성해보자.

 

아래와 같이 expect 스크립트(conn_expect.sh)를 작성하자. 인수로 host, user, pass 등을 입력한다. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/expect
 
set v_host [lindex $argv 0]
set v_user [lindex $argv 1]
set v_pass [lindex $argv 2]
 
spawn telnet $v_host
expect "ogin: "
sleep 1
send "$v_user\r"
expect "assword: "
sleep 1
send "$v_pass\r"
interact

 

접속 정보가 저장된 쉘 스크립트(conn.sh)를 작성하자. 4행에 호스트 명, 7~9행에 해당 접속 정보를 설정한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/ksh
 
PS3=":"
select v_choice in host1 host2 host3
do
    case $v_choice in
        host1) set -A a_info ... ... ...; break ;;
        host2) set -A a_info ... ... ...; break ;;
        host3) set -A a_info ... ... ...; break ;;       
        *) exit ;;
    esac
done
 
conn_expect.sh ${a_info[0]} ${a_info[1]} ${a_info[2]}

 

쉘 스크립트을 실행하면 저장된 호스트 명이 출력된다. 접속하고자 하는 호스트 명의 번호를 입력하면 다른 호스트에 자동으로 접속할 수 있다.

1
2
3
4
5
# conn.sh
1) host1
2) host2
3) host3
:1


'Programming > Shell' 카테고리의 다른 글

쿼리 결과를 쉘 변수에 할당  (0) 2012.04.26
DDL 스크립트 생성  (0) 2012.04.26
쿼리 주석 제거  (0) 2012.04.25
쿼리 수행 결과 가공  (0) 2012.04.16
요일 조회  (0) 2012.04.15
Posted by 정희락_