部署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
修改成如下
代码语言:javascript复制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)ICWetc目录下创建cwrsync.passwd密码文件
代码语言:javascript复制cwrsync:cwrsync@2021
写入授权用户cwrsync密码
(图片可点击放大查看)
5、接下来创建Linux_backup目录
(图片可点击放大查看)
6、添加cwRsyncServer 873端口的入站防火墙规则
放通入方向的873端口
(图片可点击放大查看)
(图片可点击放大查看)
7、 然后重启RsyncServer服务
(图片可点击放大查看)
(图片可点击放大查看)
2、Linux端部署rsync客户端并测试
若没有安装rsync先yum安装
代码语言:javascript复制yum install rsync
(图片可点击放大查看)
代码语言:javascript复制cd /home/
dd if=/dev/zero of=test.file count=1 bs=100M
创建测试文件
测试是否可以正常同步传输
代码语言:javascript复制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同步日志