• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    expect实现单台、多台服务器批量scp传输文件

    今天公司同事要在一台服务器上对另外两台同机房的服务器进行文件传输,两台服务器的文件存放地址一致,密码和key也一致(我们公司在安全上做得有点变态的),为了效率写了下面这个脚本.

    1.单台传输脚本

    cat /root/soft_shell/allscp.sh

    复制代码 代码如下:

    #!/usr/bin/expect
    if {$argc 2} {
            send_user "usage: $argv0 src_file username ip dest_file password\n"
    exit
    }
    ##set key [lindex $argv 0]
    set src_file [lindex $argv 0]
    set username [lindex $argv 1]
    set host_ip [lindex $argv 2]
    set dest_file [lindex $argv 3]
    set password [lindex $argv 4]
    ##spawn scp -i $key $src_file $username@$host_ip:$dest_file
    spawn scp  $src_file $username@$host_ip:$dest_file
    expect {
            "(yes/no)?"
                    {
                            send "yes\n"
                            expect "password:" {send "$password\n"}
                    }
            "password:"
                    {
                            send "$password\n"
                    }
    }
    expect "100%"
    expect eof

    2.多台传输脚本

    cat /root/soft_shell/mainscp.sh

    复制代码 代码如下:

    #!/bin/bash
    host_list="server_list.conf"
    cat $host_list | while read line
    do
      host_ip=`echo $line|awk '{print $1}'`
      username=`echo $line|awk '{print $2}'`
      password=`echo $line|awk '{print $3}'`
      src_file=`echo $line|awk '{print $4}'`
      dest_file=`echo $line|awk '{print $5}'`
      ##key=`echo $line|awk '{print $6}'`
      ##./allscp.sh $key $src_file $username $host_ip $dest_file $password
      ./allscp.sh $src_file $username $host_ip $dest_file $password
    done

    3.服务器信息文件


    复制代码 代码如下:

    cat /root/soft_shell/server_list.conf


    格式为:


    复制代码 代码如下:

    ip 用户名 密码 源文件 目标文件地址

    ps:以上3个文件,相信大家都看出来了,都是放在同一文件夹下面的.我本地测试只用ssh密码,没有加上ssh key,如果要用上跟我们公司正式环境一样的安全方式(ssh密码+key,才能登录服务器),那么请自己修改脚本文件,我比较懒这里就不说得那么详细了.

    最后来张效果图吧,免得大家说我脚本有问题.

    您可能感兴趣的文章:
    • 魔兽世界item.scp文件参数说明
    • shell结合expect写的批量scp脚本工具
    • ssh,scp自动登陆的实现方法
    • bash scp command not found的解决方法
    • 使用scp获取远程linux服务器上的文件 linux远程拷贝文件
    • linux使用scp命令备份文件 scp拷贝文件
    • linux拷贝命令之高级拷贝scp命令详解
    • Windwos下使用winscp和批处理实现通过SSH端口上传文件到Linux服务器上
    • scp命令详解(全)
    上一篇:Shell脚本实现关闭多余的tty终端
    下一篇:Shell脚本实现监控iptables规则是否被修改
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    expect实现单台、多台服务器批量scp传输文件 expect,实现,单台,多台,服务器,