• 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"

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

  • 相关阅读:
    API接口:分页
    PHP中判断变量为空的几种方法
    获取APP最新版本的接口案例
    浏览器兼容性
    APP的消息推送(极光推送)
    Json
    PHP 图片上传 (AIP图片上传接口)
    日历时间插件
    PHP读写文件
    ThinkPHP 事务处理 (事务回滚) 、异常处理
  • 原文地址:https://www.cnblogs.com/osxlinux/p/3071325.html
Copyright © 2020-2023  润新知