1,分发系统介绍。
借助expect使用shell脚本在服务器上批量更改代码。
2,expect脚本远程登录 。
使用命令“yum install -y expect”安装expect工具。
自动远程登录 vim 1.expect
#! /usr/bin/expect
set host "192.168.177.132"
set passwd "123456"
spawn ssh root@$host
expect {
"yes/no" { send "yes\r"; exp_continue}
"password:" { send "$passwd\r" }
}
interact
chmod +x 1.expect
./1.expect
3,expect脚本远程执行命令。
自动远程登录后,执行命令并退出vim 2.expect
#!/usr/bin/expect
set user "root"
set passwd "123456"
spawn ssh $user@192.168.177.132
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"
chmod +x 2.expect
./2.expect
4,expect脚本传递参数。
vim 3.expect
#!/usr/bin/expect
set user [lindex $argv 0] //第一个参数的值给user
set host [lindex $argv 1] //第二个参数的值给host
set passwd "123456"
set cm [lindex $argv 2] //第三个参数的值给cm
spawn ssh $user@$host
expect {
"yes/no" { send "yes\r"}
"password:" { send "$passwd\r" }
}
expect "]*"
send "$cm\r" //此处下面可以设置超时set timeout -1 永不超时或者后面接秒数set timeout 5
expect "]*"
send "exit\r"
chmod +x 3.expect
./3.expect root 192.168.177.132 "ls;w;df -h" //一次执行多条命令