部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器

2021-09-02 15:05:16 浏览数 (1)

部署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
代码语言:javascript复制
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、 编辑定制任务
代码语言:javascript复制
crontab -e


编辑定制任务
*/5 * * * * /opt/cwrsync.sh
例如每5钟同步一次

crontab -l
  • 3 重启crond服务
代码语言:javascript复制
systemctl restart crond

(图片可点击放大查看)

  • 4、再创建几个测试文件
代码语言:javascript复制
dd if=/dev/zero of=test_crontab.file count=1 bs=100M
tail -f /var/log/cwrsync_record.log 

可以看到定时同步任务的执行情况日志

(图片可点击放大查看)

可以看到定时同步成功

WindowsServer端的rsync同步日志

0 人点赞