部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器
场景描述
需要将Linux 服务器某个目录下的所有文件定期同步到WindowsServer2012服务器上
尝试:前期使用过在WindowsServer2012服务器安装goodsync同步软件这种方案,通过SFTP协议同步Linux服务器某目录所有文件到本地的WindowsServer2012服务器上
但goodsync试用到期后需要购买授权收费
后面决定使用CwRsyncServer这种方法
cwRsync简单介绍
cwRsync是基于cygwin平台打造的rsync软件包,功能强大,绿色安全,可以支持windows对windows、windows对Linux、Linux对windows高效文件同步。
使用 cwRsync 来同步文件后,只需要对一台主服务器进行文件修改,其他镜像服务器可以自动同步,包括文件的更新、删除、重命名等。
下面介绍部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器
1、在Windows Server 2012服务器上先安装部署cwRsyncServer
下载CwRsyncServer V4.1.0 正式版(自行百度)
1、以管理员身份运行进行安装
2、系统自动创建用户SvcCWRSYNC,无需修改用户名,修改密码后直接默认安装
用户SvcCWRSYNC只用来运行 cwRsyncServer 服务端程序
并将服务启动设置为自动
3、C:\Program Files (x86)\ICW目录下修改rsyncd.conf
修改成如下
use chroot = false uid = 0 gid = 0 strict modes = false hosts allow = * log file = rsyncd.log # Module definitions # Remember cygwin naming conventions : c:\work becomes /cygwin/c/work # [backup] path = /cygdrive/c/Linux_backup read only = false transfer logging = yes auth users = cwrsync secrets file = etc/cwrsync.passwd
其中C:\Linux_backup目录当作备份目录(目的端)
- Tips:
uid = 0 gid = 0 记得加上,解决@ERROR: invalid gid nobody报错问题
4、在C:\Program Files (x86)\ICW\etc目录下创建cwrsync.passwd密码文件
cwrsync:cwrsync@2021
写入授权用户cwrsync密码
5、接下来创建Linux_backup目录
6、添加cwRsyncServer 873端口的入站防火墙规则
放通入方向的873端口
7、 然后重启RsyncServer服务
2、Linux端部署rsync客户端并测试
若没有安装rsync先yum安装
yum install rsync
cd /home/ dd if=/dev/zero of=test.file count=1 bs=100M
创建测试文件
测试是否可以正常同步传输
rsync --progress -avz --delete /home/* cwrsync@192.168.31.12::backup
3、编写脚本,利用crontab实现定时同步
- 1、/opt/cwrsync.sh
vi /opt/cwrsync.sh #!/bin/bash export RSYNC_PASSWORD=cwrsync@2021 LOCK=/var/log/cwrsync_record.log echo "备份日期:" >> ${LOCK} 2>&1 echo `date '+%Y-%m-%d_%T'` >> ${LOCK} 2>&1 echo "=================cwRsync starting===============================" >> ${LOCK} 2>&1 rsync --progress -avz --delete /home/* cwrsync@192.168.31.12::backup >> ${LOCK} 2>&1 echo "=================cwRsync Finished===============================" >> ${LOCK} 2>&1
- 2、 编辑定制任务
crontab -e 编辑定制任务 */5 * * * * /opt/cwrsync.sh 例如每5钟同步一次 crontab -l
- 3 重启crond服务
systemctl restart crond
- 4、再创建几个测试文件
dd if=/dev/zero of=test_crontab.file count=1 bs=100M tail -f /var/log/cwrsync_record.log
可以看到定时同步任务的执行情况日志
可以看到定时同步成功
WindowsServer端的rsync同步日志