需求:
需要定时把客户机上的文件增量同步到服务器上,达到备份效果。
环境:
服务器:linux系统
客户机:windows系统
思路:
1.linux上安装rsync服务端;
2.windows上安装rsync客户端;
3.客户端上每5分钟触发一次同步。
一、在linux上,安装rsync服务端:
手动安装rsync:
1. rsync下载 https://download.samba.org/pub/rsync/src/rsync-3.1.2.tar.gz 后解压。
2. 安装:
# cd /storage/software/rsync-3.1.2
# sudo chmod -R 750 /storage/software/rsync-3.1.2
# ./configure --prefix=/usr/local/rsync
# make
# make install
3. 配置rsync-server
3-1. 配置rsyncd.conf (手动创建:# touch /usr/local/rsync/rsyncd.conf
)
# vi /usr/local/rsync/rsyncd.conf
### 全局参数 ###
port=873
motd file=/usr/local/rsync/rsyncd.motd
log file=/usr/log/rsyncd.log
pid file=/var/run/rsyncd.pid
### 模块 ###
[testModule] # 模块名唯一
path=/storage/backUpFiles # 服务器文件存储路径
use chroot=true
uid=0
gid=0
read only=false
exclude=/readme.txt /runtime
auth users=testUser # 验证用户名
secrets file = /usr/local/rsync/rsyncd.secrets # 验证用户秘钥
3-2. 配置rsyncd.secrets(手动创建:# touch /usr/local/rsync/rsyncd.secrets
)
# vi /usr/local/rsync/rsyncd.secrets
键入:# testUser:123456
后保存。
此文件权限必须设置:600:
# chmod 600 /usr/local/rsync/rsyncd.secrets
3-3. 配置rsyncd.motd (手动创建:# touch /usr/local/rsync/rsyncd.motd
)
# vi /usr/local/rsync/rsyncd.motd
键入欢迎语,如:
# welcome use rsync service
3-4. 启动rsyncd
# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
3-5. 查看rsyncd进程
# ps aux | grep rsyncd
4. 配置rsync开机启动
# vi /etc/rc.local
键入:
# /usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf
5. 开放873端口
# firewall-cmd --permanent --zone=public --add-port=873/tcp
# firewall-cmd --reload
二、在windows下,安装rsync客户端:
1.解压cwRsync_4.1.0_Installer_client.rar,安装rsync客户端
cwRsync_4.1.0_Installer_client.rar 放在我阿里云盘上了,但是阿里云盘暂时不支持分享...后续会补充...
2.在C:\etc下新建文件rsync.client.password,里面只填密码。内容:
123456
2-1.修改rsync.client.password文件权限:
# chmod.exe 600 /cygdrive/c/etc/rsync.client.password
2-2.修改rsync.client.password文件的属主:
windows下,文件右键属性-安全-高级-修改所有者-键入administrator-检查名称-保存
3.新建一个本地同步用的文件夹,回头做同步测试用:
C:\etc\waveform_analysis
三、客户端测试:
1.在C:\Program Files (x86)\cwRsync\bin>下,shift+右键,打开cmd,执行命令,从服务器拉取数据,或推送数据到服务器
1-1.拉取:将服务器 testModule 模块里的文件同步至 /cygdrive/c/etc/waveform_analysis/
# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password testUser@服务器IP::testModule /cygdrive/c/etc/waveform_analysis
1-2.推送:将客户端 /cygdrive/c/etc/waveform_analysis/ 文件同步到服务器的 testModule 模块
# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/c/etc/rsync.client.password /cygdrive/c/etc/waveform_analysis/ testUser@服务器IP::testModule
四、定时触发同步:
rsync的缺陷在于无法实现主动触发同步,可以安装成服务,然后定时执行同步,比如每5分钟触发一次同步:
使用 nssm 把 bat 安装成 windows 服务 - 简书 (jianshu.com)
网友评论