Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录。
一、Linux服务器端安装rsync服务
1、可以通过yum安装:
yum -y install rsync
#启动rsync服务
systemctl start rsyncd.service
systemctl enable rsyncd.service
#检查是否已经成功启动
netstat -lnp|grep 873
2、rsync服务器的配置文件rsyncd.conf (/etc/rsyncd/rsyncd.conf):
rsync的主要有以下三个配置文件:
3、在/etc目录下创建一个rsyncd的目录,用来存放rsyncd.passwd文件
mkdir rsyncd
touch rsyncd.passwd
chmod 600 rsyncd.pwsswd #为了密码的安全性,我们把权限设为600
配置rsyncd.passwd文件:
rsyncd.passwd的内容格式为 用户名:密码
root:123456
**注意:
将rsyncd.passwd这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功! 出于安全目的,文件的属性必需是只有属主可读**
4、配置rsyncd.conf文件:
# /etc/rsyncd: configuration file for rsync daemon mode
# See rsyncd.conf man page for more options.
# configuration example:
# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#服务器端传输文件时,要发哪个用户和用户组来执行,默认是nobody
uid = root
gid = root
#如果"use chroot"指定为yes,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为yes
use chroot = no
#客户端最多连接数
max connections = 4
#指定运行端口,默认是873
#port = 8877
#指定服务器IP地址
#address = 192.168.56.102
# CentOS7中yum安装不需指定pid file 否则报错
# pid file = /var/run/rsyncd.pid
lock file =/var/run/rsyncd.lock
#日志文件
log file = /var/log/rsyncd.log
# //此文件定义完成后系统会自动创建
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
#同步模块
[test_data]
#指定文件目录所在路径
path = /opt/leasing
#list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来。默认是yes 。如果你不想列出来,就no ;如果是no是比较安全的,至少别人不知道你的服务器上提供了哪些目录。你自己知道就行了
list=no
#指定在 rsync 服务器上运行 delete 操作时是否忽略 I/O 错误。一般来说 rsync 在出现 I/O 错误时将将跳过 –delete 操作,以防止因为暂时的资源不足或其它 I/O 错误导致的严重问题。
ignore errors
#如果为yes,表示只读本地文件就无法同步到服务器
read noly = no
#允许连接的ip,在演示中使用的云服务器就直接写*,表示无限制 如果要规定ip(192.168.10.223)或者ip段(10.1.4.0/255.255.255.0)需要进行其他配置
hosts allow=*
#auth users 是必须在服务器上存在的真实的系统用户,如果你想用多个用户,那就以,号隔开
auth users = root
#密码存在rsyncd.passwd文件里
secrets file=/etc/rsyncd/rsyncd.passwd
# [ftp]
# path = /home/ftp
# comment = ftp export area
5、配置rsyncd.motd 文件(似乎也不是必须的)
rsyncd.motd 文件类似ftp服务器登录时,我们所看到的提示信息……,当然这在全局定义变量时,并不是必须的,你可以用#号注掉,或删除
++++++++++++++++++++++++++++++++++++++++++++++
欢迎使用
++++++++++++++++++++++++++++++++++++++++++++++
---------------------
6、重启:
systemctl restart rsyncd.service
二、windows安装cwRsync客户端
1、下载服务端安装文件 http://www.jb51.net/softs/55933.html
2、cwRsync客户端不需要很复杂的配置,配置Windows的环境变量PATH:E:\cwRsync\Install\bin
3、在windows本地新建一个要同步的目录rsync_data作为同步数据的目录(名字自定义)
4、在E:\cwRsync目录下创建一个记录密码的文件rsync.passwd 内容即密码: 123456
5、写一个bat批处理文件,另存为 ANSI 格式的bat(不然会乱码):rsync_start.bat
@echo off
echo 开始同步服务器/opt/leasing/数据到本地rsync_data目录下
cd E:\cwRsync\Install\bin
rsync.exe --port=873 -avzP --delete --password-file=/cygdrive/e/cwRsync/rsync.passwd [email protected]::test_data/ /cygdrive/E/cwRsync/rsync_data
echo 同步完成
pause
#–port=873 #端口
#--password-file 密码文件
#root #执行数据同步的用户
#106.14.69.110 #服务器地址
#test_data #模块名称
#--delete #从cwRsync客户端E:\cwRsync\rsync_data目录中删除与Rsync服务端/opt/leasing目录中不相同的数据,即保证两边的数据完全一致
#/cygdrive/E/cwRsync/rsync_data 表示本地的同步文件夹E盘:E:/cwRsync/rsync_data 为同步文件夹
由于rsync始终是Linux下的东西,所以在设置win的保存目录的时候,必须/cygdrive带头后面跟盘符及目录
运行rsync_start.bat即可。
三、可添加批处理脚本到Windows任务计划,实现自动同步数据
四、Windows同步到linux: https://www.linuxidc.com/Linux/2012-09/71333.htm