使用rsync支持远程同步

很多时候,我们需要将一些大的文件进行跨网传输,一个文件动不动几十G,当你的带宽资源紧张的时候,传输这样几个文件会花10小时,甚至几天。 

nc传输文件,通过以下方法,将加快文件传输,希望对大家有所帮助。

环境:
server1        源地址(

server2        目标地址

需求:将server1上的某个目录文件拷贝到server2上

方式1(把目录压缩后传递)

1.安装nc,多数linux发行版都默认安装了
 sudo yum install nc

2.server2上操作
进入自己的目录,确保有足够的空间,然后启动监听
cd ~
nc -l 23456 | tar xvzf –

3.server1上操作

sudo tar cvzf - /home/q/www/cellSystem/ | nc l-server2.h.com 23456

完成!

方式2(直接传输文件)

准备工作:
如果没有nc或者pv命令,执行以下命令安装

sudo yum -y install nc
sudo yum -y install pv

1. server1上操作

#<file>为要传递的文件
sudo lsof -i :12345 || sudo cat <file> | nc -l 12345

2. server2上操作

#<file>为要保存的文件名!!注意:文件必须要在自己有写权限的目录,例如/tmp目录下,否则保存会失败!!;而l-server1.beta.cn为server1的地址;
nc l-server1.beta.cn 12345 | pv -pt > <file>

方式3(Python搭建服务器)

1. server1上操作,首先cd到<file>所在的目录

python -m SimpleHTTPServer 41190

2. server2上操作

sudo wget http://l-server1.beta.com:41190/<file>

方式4(rysnc方式)

启动rsync服务方法

rsync默认已经被安装在机器上,不再另行介绍安装方法。

编辑rsync的配置文件:/etc/rsyncd.conf,举例如下:

list = false
uid = root
gid = root
ignore errors
read only = yes
#auth users = aaa
#secrets file = /etc/rsync.passwd
hosts allow = *.aa.com

[tmpBackup]
path = /tmp/backup
read only = yes
ignore errors
hosts allow = *.aa.com

以上配置文件,将/tmp/backup目录作为远程同步目录暴露出去(访问名:tmpBackup),可以在其他机器(包括跨机房)远程进行文件同步。

如果rsync已经启动,则查找进程后kill掉。然后使用如下命令启动:

sudo rsync --daemon /etc/rsyncd.conf

远程同步文件

在需要拷贝文件的机器上执行以下命令:

sudo rsync  -vrtpc --progress root@<远程机器名>::<配置项名称>  <本地目录>
#例如:
#sudo rsync  -vrtpc --progress root@l-aa.h.beta.com::tmpBackup  /tmp

批量执行

使用该方式,而不是使用python的SimpleHTTPServer方式,主要是两点原因:

  1. 该方式支持文件夹的同步
  2. 该方式也可以支持多机批量同步
atnodes -L 'sudo rsync  -vrtpc --progress root@l-aa.h.beta.com::tmpBackup  /tmp' l-aa[1-9].h.beta.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值