IT运维的365天--017 如何在两台Linux服务器之间快速批量传输文件夹(同时设置免密)

前情提要(两台Linux服务器之间传输批量文件夹):

两台都是外网服务器,都是Linux系统(CentOS),都安装了宝塔,用于搭建巨量的静态网站,由于A服务器准备不要了,所以要在A服务器转移几百个静态网站到B服务器。

Linux下scp单命令传输文件夹测试:

准备工作,先测试转移一个文件夹看看,传输文件正常就首选自带的scp程序了,老牌、安全、稳定。命令如下(A服务器下运行):

scp -CrpP 12345 -i id_rsa /www/wwwroot/www.xxx.com/* root@123.123.1.1:/www/wwwroot/www.xxx.com

解析:

        C 是压缩传输

        r 是递归子文件夹

        p 是连权限等文件属性一起传输

        P 大写P后面跟着空格加目标服务器SSH端口号,如果ssh是默认的22端口,可以省略

        i 则是指定免密链接的私钥文件,文章后面再顺便讲解怎么生成这免密链接的私钥文件

        加v可以看到传输的具体过程,但我实际实践发现,这所谓的具体过程是很细碎的通讯过程,没必要也晦涩难懂,不加v就有详细的文件传输列表,够了~

注意:第一次链接需要保存访问指纹fingerprint,如下图,输入yes即可。

2e65da0dea994b74abdb705280bcdd7e.png

用Shell脚本批量传输文件夹到另一个Linux服务器:

好了,单个文件夹的传输测试成功了。接下来就是批量传输了,由于域名没有规律,那么就只好通过域名清单的文本文件来提供给脚本运行,替代Shell命令的参数了。

文件名weblist.txt

格式: 

abc100.com
abc101.com
abc102.com

Shell文件copy2_new.sh内容如下:

1,宝塔系统里网站的保存位置都是/www/wwwroot/下,都是www.开头的文件夹

2,scp命令前加time是计算每个域名复制的合计时间,但缺点就是没有滚动的文件名清单了

3,time命令后面我试了重定向输出>>/root/webtrans.log 没成功,不知道为啥,后面有兴趣再研究。有懂的可以留言告知,万分感谢~    

#!/bin/bash                                                                                                                                       
while read rows                                                                                                                                   
do                                                                                                                                                
        echo "now process domain is : /www/wwwroot/www.$rows"                                                                                          
        if [ -d "/www/wwwroot/www.$rows" ];then                                                                             
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值