zoukankan      html  css  js  c++  java
  • shell远程取数据的脚本.

    远程自动脚本两个脚本执行自动化,首先定义一个文件用来存放你要访问的服务器的地址端口用户名密码 本机地址
    格式如下:

    ip port username password localhostIP

    保存为server.conf

    shell配合expect, shell用作循环,expect用作交互。

    1.用shell写一个while循环。

    #!/bin/bash
    #by osx1260@163.com
    filename="server.conf"
    while read line
        do
          ./expect.exp
    done < $filename         

    2.写一个expect.exp

    #!/usr/bin/expect -f
    set ipaddress [lindex $argv 0]
    set port [lindex $argv 1]
    set username [lindex $argv 2]
    set passwd [lindex $argv 3]
    set localIP [lindex $argv 4]
    set timeout 20
    spawn ssh $ipaddress -p$port -l$username
            expect {
    "yes/no" { send "yes\r";exp_continue }
    "assword:" { send "$passwd\r" }
            }
            expect -re "\](\$|#) "
    send "xm list &>/root/check-network.log \r"
            expect -re "\](\$|#) "
    send "sar -n DEV 3 5 | grep vif* | awk '{print \$2,\$5,\$6}' & >> /root/check-network.log \r"
    #       expect -re "\](\$|#) "
    #send "sort -t\" \" -k 2n -u /root/test.log @>>/root/check-network.log \r"
            expect -re "\](\$|#) "
    send "scp -r /root/check-network.log $username@$localIP:/var/log/check-network.log \r"
            expect {
    "assword:" { send "$passwd\r" }
                    }
    
            expect -re "\](\$|#) "
    send "rm -fr /root/test.log \r"
    send "rm -fr /root/check-network.log \r"
    send "exit\r"

    有时间了写具体的过程注释~~这里留做自己的笔记

  • 相关阅读:
    python基础-递归
    python基础-三元表达式/列表推导式/生成器表达式
    python基础-生成器
    python基础-迭代器
    python基础-函数
    python基础-文件操作
    Docker(六)安装Red5进行rtmp推流
    Docker(五)安装Fastdfs
    Docker(四)安装Redis
    Docker(三)安装Mysql
  • 原文地址:https://www.cnblogs.com/osxlinux/p/3071325.html
Copyright © 2011-2022 走看看