• 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
    "
            expect "assword:"
            send "$passwd
    "
        }
            "assword:" {
            send "$passwd
    "
        }
     }
    
    
    # 下面测试是否登录到 
    expect "$" 
    send "df -h
    "
    send "tail -10 /oracle/app/admin/perass/bdump/alert_perass.log
    "
    send "exit
    "
    expect eof
    #send "uname
    "
    # expect "Linux"
    # send "df -h
    "
     # 这里使用了 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
    

  • 相关阅读:
    WP2Sinablog使用后的后遗症
    .NET Framework 4 与 .NET Framework 4 Client Profile
    360浏览器也有了开发人员工具了
    让你的手机号“变”qq号
    首次体验 Live Writter
    判断素数
    SqlServer文件挂起
    vni—2015:验证错误
    成功者善于模仿(转)
    dbms_output缓冲区溢出
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/3797997.html
Copyright © 2020-2023  润新知