#root#cmd#자동로그인
타입 | 설명 |
---|---|
set | 변수설정 형식 : set key value 와 같이 공백으로 구분 입력파라메터는 [lindex $argv 0], [lindex $argv 1]와 같이 0,1,2,... 로 지정한다. |
spawn | 최초 명령어를 나열/실행한다. |
expect | 명령어 실행 후 리턴되는 문자열 (기대되는 문자열이 나올때까지 기다린다.) |
send | 문자열 또는 명령어를 보낸다. ("문자열\r") \r은 리턴을 의미한다. |
interact | expect를 종료하고 제어권을 셸로 리턴한다. |
expect eof | expect 종료 |
$ expect -c 'spawn su -;expect "암호:";send "{password}\r";interact;';
※ root로 로그인 후 ls -alt 명령어를 보넨다.
$ expect -c 'spawn su -;expect "암호:";send "{password}\r";send "ls -alt\r";interact;';
$ expect -c 'spawn su -;expect "암호:";send "{password}\r";send "{명령어};\r";send "exit;\r";interact;'
JAVA Application (JSch 사용을 통한 command 실행 예제)- 상동
$ expect -c 'spawn su -;expect "암호:";send "{password}\r";send "{명령어};\r";send "exit;\r";interact;'
#!/usr/bin/expect
set timeout 30
## 매개변수로 외부에서 1,2번을 취득한다.
set PWD [lindex $argv 0];
set CMD [lindex $argv 1];
## root change 명령어
spawn su -;
## 기대되는 문구 영어인경우 password: 등으로 표시될 것이다.
expect "암호:"
send "$PWD\r"
send "$CMD;\r"
interact