20.27 分发系统介绍
shell项目-分发系统-expect
20.28 expect脚本远程登录
1. 安装expect
[[email protected] ~]# yum install -y expect
自动远程登录
2. 创建配置1.expect脚本(远程登录)
[[email protected] ~]# vim 1.expect
添加内容(自动远程登录hao2机器并执行命令)
#! /usr/bin/expect
set host "192.168.211.129"
set passwd "admin"
spawn ssh [email protected]$host
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
interact
3. 增加1.expect脚本x权限
[[email protected] ~]# chmod a+x 1.expect
4. 执行1.expect脚本(远程登录)
[[email protected] ~]# ./1.expect
20.29 expect脚本远程执行命令
自动远程登录后执行命令并退出
1. 远程hao2机器,创建/tmp/12.txt文件,追加重定向1212到/tmp/12.txt文件:
[[email protected] ~]# vim 2.expect
添加内容:
#!/usr/bin/expect
set user "root"
set passwd "admin"
spawn ssh [email protected]192.168.211.129
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
expect "]*"
send "touch /tmp/12.txt\r"
expect "]*"
send "echo 1212 > /tmp/12.txt\r"
expect "]*"
send "exit\r"
2. 增加2.expect脚本x权限
[[email protected] ~]# chmod a+x 2.expect
3. 执行2.expect脚本
[[email protected] ~]# ./2.expect
20.30 expect脚本传递参数
传递参数
1.
[[email protected] ~]# vim 3.expect
添加内容:
#!/usr/bin/expect
set user [lindex $argv 0]
set host [lindex $argv 1]
set passwd "admin"
set cm [lindex $argv 2]
spawn ssh [email protected]$host
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r"
expect "]*"
send "exit\r"
2. 增加3.expect脚本x权限
[[email protected] ~]# chmod a+x 3.expect
3. 执行3.expect脚本
远程登录到指定用户名 主机ip 执行的多个命令(ls;w)
[[email protected] ~]# ./3.expect root 192.168.211.129 "ls;w"