索引
批量工具自然不用多说,ansible、saltstack、pssh等工具,当然这些工具一般情况都是在使用密钥免密基础之上,ansible将主机密码写在配置中除外
Expect是在Tcl基础上创建起来的,它还提供了一些Tcl所没有的命令,它可以用来做一些linux下无法做到交互的一些命令操作,在远程管 理方面发挥很大的作用。
spawn命令激活一个Unix程序来进行交互式的运行。
send命令向进程发送字符串。
expect 命令等待进程的某些字符串。
expect支持正规表达式并能同时等待多个字符串,并对每一个字符串执行不同的操作.
使用前要安装expect
yum安装
yum -y install expect
源码安装
1.下载源码包
wget
http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download
2.解压缩源码包
tar xzvf expect5.45.tar.gz
3.安装配置
cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib
–with-tclinclude=…/tcl8.4.11/genericmake make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
查看172.46.28.74、172.46.28.75、172.46.28.76三台机器的网卡信息
cat spawn.sh
#!/bin/bash
expect <<EOF
spawn ssh 172.46.28.74 "ip a"
expect {
"password" { send "12345678\n" }
}
expect eof
EOF
expect <<EOF
spawn ssh 172.46.28.74 "ip a"
expect {
"password" { send "12345678\n" }
}
expect eof
EOF
expect <<EOF
spawn ssh 172.46.28.75 "ip a"
expect {
"password" { send "12345678\n" }
}
expect eof
EOF
expect <<EOF
spawn ssh 172.46.28.76 "ip a"
expect {
"password" { send "12345678\n" }
}
expect eof
EOF
也可以选择使用shc工具对脚本加密,它的作用是把shell脚本转换为一个可执行的二进制文件,这个办法很好的解决了脚本中含有IP、密码等不希望公开的问题