반응형
expect
Expect는 스크립트에 따라서 다른 상호작용하는 프로그램과 대화하는 프로그램입니다. 번역된 언어는 대화를 하는 데 있어서 분기와 높은 수준의 제어 구조를 제공합니다. 게다가, 사용자는 스크립트로 원할 때 직접 상호작용하면서 제어를 할 수 있습니다.
Expect는 사용자 수준의 어떤 프로그램이나 작업에 대한 명령어로서 실행될 수 있습니다. Expect는 실제로 동시에 여러 프로그램과 대화할 수 있습니다.
사용예시
https://github.com/SDRLurker/shell
mssh.sh
mssh.sh 실행할서버 SSH포트 "명령"
shell 내의 sexecute() 함수가 있습니다.
ssh로 서버에 접속하여 $PW를 보내 비밀번호를 자동으로 입력하는 기능을 합니다.
# 원격 서버에 접속하여 shell 명령을 수행합니다.
sexecute() { local IP=$1 local PORT=$2 local PW=$3 local MSG=$4 if [ -z $PORT ]; then PORT=22 fi echo "ssh -p$PORT $IP $MSG" expect <<EOF set timeout -1 spawn ssh -p$PORT $IP $MSG # SSH로 $IP와 $PORT로 접속해 $MSG명령을 실행하기 위해 접속 expect "password:" # SSH에서 password라는 글자를 받으면 다음 줄로 넘어간다. send "$PW\r" # 비밀번호 $PW 문자열을 입력한다. expect eof EOF }
|
출처
반응형
'리눅스 shell' 카테고리의 다른 글
리눅스 shell에 색깔 입히기 (0) | 2015.11.01 |
---|---|
리눅스에 공유메모리에 접근한 프로세스의 목록을 아는 방법 (0) | 2015.08.13 |
리눅스 쉘에서 '>/dev/null 2>&1'의 뜻이 무엇인가요? (2) | 2015.07.10 |
ssh를 사용하여 원격 컴퓨터의 shell script를 실행하는 방법? (0) | 2015.03.26 |
rsync (0) | 2015.02.17 |