expect 로 ssh 자동 로그 인 서버 를 실현 하고 대량 관 리 를 실현 하 는 방법

1024 단어 ssh 자동 로그 인
셸 코드:

#!/usr/local/bin/expect
set PASSWD [lindex $argv 1]
set IP     [lindex $argv 0]
set CMD [lindex $argv 2]
spawn ssh $IP $CMD
expect "(yes/no)?" {
send "yesr"
expect "password:"
send "$PASSWDr"
} "password:" {send "$PASSWDr"} "*host " {exit 1}
expect eof
주해:첫 번 째 줄 은/usr/local/bin 디 렉 터 리 의 expect 명령 을 사용 하여 뒤의 프로그램 을 설명 합 니 다.두 번 째 줄,세 줄,네 줄 은 각각 명령 행 매개 변수 에서 로그 인 할 호스트 IP 주소,로그 인 비밀번호,실행 할 명령 을 가 져 옵 니 다.다섯 번 째 줄 은 아마도 이 사건 을 촉발 시 켜 ssh$IP$CMD 명령 을 실행 해 야 합 니 다.6 줄 에서 11 줄 까지 는 expect 의 전체 상호작용 과정 이다.읽 으 면(yes/no)?알림 부 호 는 yes 를 입력 하고 차 로 돌아 갑 니 다.password:암 호 를 입력 하 는 문자열 을 읽 으 면 로그 인 비밀번호(root 사용자)를 입력 하 십시오.물론 처음 로그 인 하지 않 았 다 면 이전에 로그 인 한 적 이 있다 면 ssh$IP$CMD 를 입력 하고 돌아 오 면 비밀 번 호 를 입력 하 라 고 직접 알려 줍 니 다.즉,문자열 을 읽 을 수 있다 는 뜻 입 니 다.*password:"이 럴 때 비밀 번 호 를 입력 합 니 다."password:"와 는 나타 나 지 않 을 수 있 습 니 다.시스템 은"No route to host"를 종료 하 라 고 알 립 니 다.

좋은 웹페이지 즐겨찾기