亲测可用
rsync(remote synchronize)是类unix系统下的实现远程数据同步功能的工具,它的特性如下:
- 可以镜像保存整个目录树和文件系统
- 可以很容易做到保持原来文件的权限、事件、软硬链接等信息
- 无需特殊权限即可安装
- 快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
- 安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
- 支持匿名传输,以方便进行网站镜象。
在Ubuntu(服务端)下安装rsync通过以步骤可以实现:
sudo apt-get install rsync xinetd
默认情况下Ubuntu安装了rsync,因此只需安装xinetd
1.编辑/etc/default/rsync
启动rsync作为使用xinetd的守护进程
# 打开rsync sudo vim /etc/default/rsync # 编辑rsync RSYNC_ENABLE=inetd
2.创建/etc/xinetd.d/rsync
, 通过xinetd使rsync开始工作
# 创建并打开文件 sudo vim /etc/xinetd.d/rsync # 编辑内容 service rsync { disable = no socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
3.创建/etc/rsyncd.conf
,并填写配置信息
# 创建并打开文件 sudo vim /etc/rsyncd.conf # 编辑配置信息 max connections = 2 log file = /var/log/rsync.log timeout = 300 [share] # 模块名 comment = Public Share # path为需要同步的文件夹路径 path = /home/share read only = no list = yes uid = root gid = root # 必须和 rsyncd.secrets中的用户名对应 auth users = user secrets file = /etc/rsyncd.secrets
这里的users = user 是你自己设置的用户名,我设置的是:users = lucifer
这里的path = /home/share 是你自己设置的共享的文件夹,我设置的是:path = /home/lcf/share
4.创建/etc/rsyncd.secrets
,配置用户名和密码.
# 创建并打开文件 sudo vim /etc/rsyncd.secrets # 配置用户名和密码,密码可以任意设置 user:password
这里的user:password 是你自己设置的用户名,4里面的use需要和3中的保持一致:我设置的是:lucifer= 123456
5.修改rsyncd.secrets
文件的权限
sudo chmod 600 /etc/rsyncd.secrets
6.启动/重启 xinetd
sudo /etc/init.d/xinetd restart
由于我用的系统是windows,所以需要在windows上安装rsync的客户端cwRsync
1.下载并安装cwRsync
2.安装后将其添加到环境变量path中,我的cwRsync
安装在D:\cwRsync
目录下,将D:\cwRsync\bin
添加到环境变量path中
在客户端运行下面的命令检查,确认rsync
配置成功
# user是在服务器中rsyncd.secrets文件中配置的用户名 # xx.xx.xx.xx 是服务器的ip地址,也可以填写服务器对应的域名 # share 是rsyncd.conf中定义的模块 rsync user@xx.xx.xx.xx::share
输入密码后,如果输出以下类似内容,说明配置成功
drwxr-xr-x 4096 2006/12/13 09:41:59 . drwxr-xr-x 4096 2006/11/23 18:00:03 folders
1.将本地文件同步至服务器
# 将当前目录下public路径下的全部内容,同步至服务器,服务器的同步路径在rsyncd.conf中指定 rsync -av ./public/ user@xx.xx.xx.xx::share
2.将服务器文件同步至本地
rsync -cvazu --progress user@xx.xx.xx.xx::share /rsyn
#!/bin/bash # password:123456 cd /data2/home/lichaofei/ rsync -cvazu --progress lucifer@xx.xx.xx.xx::share syncDest
原文链接:https://blog.csdn.net/ChaoFeiLi/article/details/124953760