索引
批量工具自然不用多说,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、密码等不希望公开的问题
本文介绍了一种在Linux环境下用于远程管理和自动化任务的工具——Expect。通过实例演示了如何使用Expect进行SSH登录并执行特定命令,包括安装过程、基本命令如spawn、send和expect的用法,以及如何通过Expect脚本查看多台机器的网卡信息。
3312

被折叠的 条评论
为什么被折叠?



