셸 에서 expect 명령 을 사용 하여 원 격 명령 스 크 립 트 를 실행 합 니 다.
주의:
1. 스 크 립 트 의 실행 방법 은 bash 셸 과 다 릅 니 다. 예 를 들 어 expect example. sh.
2. 한 스 크 립 트 에 파 라 메 터 를 전달 할 때 bash 셸 은 $1, 2... 파 라 메 터 를 받 습 니 다.한편, e x p e c t 는 스 크 립 트 의 실행 매개 변 수 를 배열 2 에 저장 하여 인 자 를 받 습 니 다.expect 는 스 크 립 트 의 실행 매개 변 수 를 배열 2 에 저장 하여 인 자 를 받 습 니 다.expect 는 스 크 립 트 의 실행 매개 변 수 를 배열 argv 에 저장 합 니 다. 스 크 립 트 에 서 는 보통 변수 에 할당 합 니 다: set 변수 이름 [lindex $argv 매개 변수]
#!/usr/bin/expect
set ip [lindex $argv 0]
set password [lindex $argv 1]
set timeout 2
spawn telnet $ip
expect "*femto login:"
send "root\r"
expect "*Password:"
send "$password\r"
# 进入指定的机器后,就可执行相应的命令或者脚本
interact
#expect eof
메모: 로그 인 후 원 격 단말 기 를 종료 하면 expect eof 를 쓰 면 됩 니 다.
3. 스 크 립 트 실행
expect autologin.sh 192.168.1.240 root
서버 재 부팅, ftp, ls, scp 등 원 격 서버 에 로그 인 하 는 간단 한 명령 을 expect 명령 으로 실행 해 야 할 때 가 많 습 니 다.비밀 번 호 를 입력 하 는 대화 형 장면 과 관련 되 는데 이때 expect 명령 의 큰 효과 가 나 왔 습 니 다. 다음은 비교적 전형 적 인 스 크 립 트 입 니 다.
#!/usr/bin/tclsh
package require Expect
set host_ip1 [lindex $argv 0]
set host_usr [lindex $argv 1]
set host_pwd [lindex $argv 2]
spawn ssh $host_usr@$host_ip1
set timeout 60
expect {
-re "password" {send "$host_pwd
"}
-re "yes/no" {send "yes
";exp_continue} # 有的时候输入几次密码来确认,exp_continue
}
expect "#"
send "ls /home/${host_user} | tee -a /tmp/ls.txt \r"
expect "#"
send "exit\r"
expect eof
총결산
이상 은 이 글 의 모든 내용 입 니 다. 본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다. 여러분 의 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Dubbo (2): zookeeper 등록 센터Zookeeper 는 Apacahe Hadoop 의 하위 프로젝트 로 트 리 형태의 디 렉 터 리 서비스 로 푸 시 변경 을 지원 하 며 Dubbo 서비스의 등록 센터 로 적합 하 며 산업 강도 가 높 아 생산 환경...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.