expect 批量监控主机
2024-08-31 02:00:54
[oracle@OAPRIMARY shell]$ cat expect.sh
while read line
do
user=`echo $line | awk '{print $1}'`
ip=`echo $line |awk '{print $2}'`
passwd=`echo $line | awk '{print $3}'`
#把shell中的$user $ip $passwd参数传递给expect脚本
expect expect2.exp $user $ip $passwd
done < name.tmp [oracle@OAPRIMARY shell]$ cat expect2.exp
#!/usr/bin/expect
# 设置超时时间为 60 秒
# set timeout 60
# 设置要登录的主机 IP 地址
# set host=$host
# 设置以什么名字的用户登录
# set ip=$ip
# 设置用户名的登录密码
# set passwd=$passwd #把shell的参数传递给expect脚本
set user [lindex $argv 0]
set ip [lindex $argv 1]
set passwd [lindex $argv 2] #spawn 一个 ssh 登录进程
spawn ssh $user@$ip
# 等待响应,第一次登录往往会提示是否永久保存 RSA 到本机的 know hosts 列表中;等到回答后,在提示输出密码;之后就直接提示输入密码
expect {
"(yes/no)?" {
send "yes\n"
expect "assword:"
send "$passwd\n"
}
"assword:" {
send "$passwd\n"
}
} # 下面测试是否登录到
expect "$"
send "df -h\n"
send "tail -10 /oracle/app/admin/perass/bdump/alert_perass.log\n"
send "exit\r"
expect eof
#send "uname\n"
# expect "Linux"
# send "df -h\n"
# 这里使用了 interact 命令,使执行完程序后,用户可以在 $host 终端进行交互操作。
[oracle@OAPRIMARY shell]$ [oracle@OAPRIMARY shell]$ cat name.tmp
oracle 10.3.1.51 xxx
oracle 10.3.1.52 xxx
oracle 10.2.1.42 xxx
root 10.3.1.54 xxx
root 10.3.1.55 xxx
最新文章
- BZOJ4411——[Usaco2016 Feb]Load balancing
- Java代理模式
- 不遗留问题-menu数据拼装
- 【笨嘴拙舌WINDOWS】GDI映射方式
- Android源码编译的全过程记录
- I.MX6 gpio-keys driver hacking
- C#实现Zip压缩解压实例【转】
- MVC Model 数据注解与验证
- Error Domain=com.google.greenhouse Code=-102
- logstash 安装WARNING: SSLSocket#session= is not supported
- Spring与SpringMVC的容器关系分析
- app服务器
- 剑指offer ------ 刷题总结
- C# 关闭窗体立即停止进程
- day07 Cookie 和 Session(非常重要)
- iis正确安装了,但是还是无法访问,这是iis和.net安装顺序问题,记录一下
- Linux系统中无iptables文件的解决
- Mongodb 命令清单
- printk()、查看开机log、查看实时log
- layui 弹出层监听 判断弹出框的大小