linux自动批量拷贝文件

如果有一批机器同在一个局域网,这批机器所在地址段为192.168.100.1~192.168.100.256,用户名均为test,密码123123,如何批量将某个文件拷贝到这批机器中。

首先请确保这批机器已经安装了ssh服务并已成功运行;

其次在管理机器上(执行自动批量拷贝文件的机器)执行命令expect,如果没有此命令,需要通过系统源安装expect包,如果系统源没有此包,可在开源网站上下载expect的源码包并编译安装。

以下为自动部署的脚本copy.sh:

#!/bin/bash
for ((i=$1; i<=$2; i++))
do
        expect -c "
        spawn scp -r test.txt test@192.168.100.$i:~/桌面/
        expect {
        \"*assword\" {set timeout 3; send \"123123\r\";}
        \"yes/no\" {set timeout 3; send \"yes\r\"; exp_continue;}
        }
        expect eof"
done

在命令行执行./copy  1 256

此脚本将当前目录下的test.txt文件拷贝到IP地址为192.168.100.1~192.168.100.256的机器上;

在执行脚本时,如果某些ip地址不存在,会出现长时间超时等待,如果想缩短超时等待时间,可配置文件/etc/ssh/ssh_config中的ConnectTimeout 1,即设置连接超时时间为1秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值