expect 批量监控主机
[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
expect 批量监控主机的更多相关文章
- (九)expect批量公钥推送
(1)expect实现ssh非交互登录 注意:注释不能出现这脚本里面 spawn表示开启一个会话 \r:表示回车,exp_continue :表示没有出现这样,继续往下执行 interact :停留在 ...
- CentOS 通过 expect 批量远程执行脚本和命令
我们有时可能会批量去操作服务器,比如批量在服务器上上传某个文件,安装软件,执行某个命令和脚本,重启服务,重启服务器等,如果人工去一台台操作的话会特别繁琐,并浪费人力. 这时我们可以使用expect,向 ...
- 利用expect批量修改Linux服务器密码
一个执着于技术的公众号 背景 修改Linux系统密码,执行passwd即可更改密码.可如果有成千上百台服务器呢,通过ssh的方式逐一进行修改,对我们来说,工作量是非常大,且效率非常低下.因此采用批量修 ...
- ssh+expect批量分发
Expect安装 [root@web02 scripts]# yum install expect SSH密钥生成 [root@web02 scripts]# ssh-keygen -t dsa ...
- expect批量分发公钥
sshkey.exp #!/usr/bin/expect# 由于是多台服务器,需要在shell脚本中循环调用该脚本 if { $argc != 2 } { send_user "usage: ...
- expect 批量自动部署ssh 免密登陆 之 三
#!/bin/expect -- ########################################## zhichao.hu #Push the id.pas.pub public k ...
- expect 批量自动部署ssh 免密登陆 之 二
#!/usr/bin/expect -f ########################################## hutu #Push the id.pas.pub public key ...
- expect 批量自动部署ssh 免密登陆
[root@node2 ssh]# cat auto_ssh.sh #!/usr/bin/expect -f ########################################## #通 ...
- expect 批量执行命令
在跳板机上执行脚本,登录到远程机器分区格式化挂载命令 #!/bin/bashpasswd='engine'/usr/bin/expect <<-EOFset time 40spawn ss ...
随机推荐
- MSSQL 生成有意义的PROC
MSSQL 生成有意义的PROC --MSSQL 用PROC 生成有意义的单号:如WP200011101 GO/****** 对象: Table [dbo].[tbl_SequenceNum] ...
- Codeforces - ZeptoLab Code Rush 2015 - D. Om Nom and Necklace:字符串
D. Om Nom and Necklace time limit per test 1 second memory limit per test 256 megabytes input standa ...
- AES的S-BOX构造
利用GF(2^8)乘法逆元,以及矩阵运算,可以构造出AES的SBOX. 求乘法逆元的一般方法是利用扩展欧几里得定理,在这里我取了个巧. 因为我已经有了GF的指数表(见上一篇文),利用指数表可以轻易地构 ...
- redis 网络流程图 <一>
本来一直想好好读下redis源码.可是每次读了一点就不读了. 主要是没坚持每天都读. 隔几天看.就忘记前面的流程.就越来越不想看了. 很是蛋疼.这个还是要坚持读完的.打算这段时间都源码的时候.都大 ...
- Java ConcurrentHashmap 解析
总体描述: concurrentHashmap是为了高并发而实现,内部采用分离锁的设计,有效地避开了热点访问.而对于每个分段,ConcurrentHashmap采用final和内存可见修饰符Volat ...
- http断点续传原理:http头 Range、Content-Range
所谓断点续传,也就是要从文件已经下载的地方开始继续下载.在以前版本的 HTTP 协议是不支持断点的,HTTP/1.1 开始就支持了.一般断点下载时才用到 Range 和 Content-Range 实 ...
- Highcharts 带有数据标签曲线图表
<html> <head> <meta charset="UTF-8" /> <title>Highcharts</title ...
- referer报头
依据客户的到达方式定制页面 referer报头保存了用户是从哪个网站找到到这里来的信息的.如果用户直接输入了页面的地址,浏览器就不会发送referer信息. 5.6.1 创建一个可以根据链接过来的网站 ...
- mysql分表方法-----MRG_MyISAM引擎分表法
一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来具体说说分表的一些方法.眼下我所知道的方法都是MYISAM的,INNODB怎样做分表而且保留事务和外键,我还不是 ...
- MySQL数据库的环境及简单操作
***********************************************声明*************************************************** ...