使用Rsync软件工具将Linux服务器上的文件同步到Windows 服务器

avatar
作者
猴君
阅读量:1

使用Rsync软件工具将linux服务器上的文件同步到Windows 服务器

测试环境(推送:Linux 推送到Windows):

Windows 服务器:172.20.26.97
Linux服务器:172.20.26.34

一、在172.20.26.97上安装cwRsyncServer-v4.1.0软件,默认安装即可,然后进行相关配置和目录创建
1、修改rsyncd配置文件:(C:\Program Files (x86)\ICW\rsyncd.conf)
use chroot = false
strict modes = false
port = 873
uid = 0
gid = 0
log file = rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[autobak]
path = /cygdrive/d/autobak
ignore errors
read only = false
transfer logging = yes
auth users = admin      #172.20.26.97登录用户名
secrets file = /cygdrive/d/Rsync/rsyncd.ps 
hosts allow = * 

2、根据rsyncd配置文件内容,进行相关配置和目录创建:

1)在D盘下创建Rsync文件夹,再新建rsyncd.ps文件,并编辑rsyncd.ps文件(根据“用户名:密码”格式将本机的用户名、密码写入,例如“admin:123369”),保存

2)在D盘下创建autobak文件夹目录(这是从Linux服务器上同步过来的文件的保存路径)

3、添加防火墙的入站规则,允许rsync的tcp的873端口通过;在管理工具中,打开服务中,将RsyncServer服务设置为自动,并启动。


Windows服务器端配置完成。

二、在linux服务器上做配置好,再设置任务计划执行同步(Linux服务器172.20.26.34)

1、在/data目录下,创建data_rsync同步目录,并创建20230710.txt并写入“test”内容
mkdir -p /data/data_rsync   #假设要同步的是data_rsync目录下的文件
cd /data/data_rsync
echo "test" >> 20230710.txt

2、查系统是否有rsync服务,重启rsync服务

rpm -qa|grep rsync                #检查Linux系统内是否安装Rsync
systemctl restart rsyncd        #如果有rsync,重启rsyncd服务
yum install rsync -y                    #如果没有,安装一下
systemctl start rsyncd.service       #启动rsync服务
systemctl enable rsyncd.service      #设置开机启动rsync服务
systemctl status rsyncd.service     #查看rsync服务状态
systemctl restart rsyncd.service     #重启rsync服务


#vim /etc/rsyncd.conf  

rsyncd.conf内容如下:

#文件夹权限
strict modes = false
uid = 0
gid = 0
max connections=10      #最大连接数
#是否越过软链接文件
use chroot = false
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
port=873      #端口,可自行设置(需要注意的是,端口必须是在服务器开放端口区间范围内)
[rsyncto97]     #标识符,在客户端是需要使用,可自行设置
#hosts=172.20.26.97      #客户端地址
hosts allow = *
#comment=backup file
path=/data/data_rsync/     #服务端需要同步的文件地址
list = yes
read only = false
#exclude=autobak
auth users = root        #服务端设置的账号
secrets file=/etc/rsyncd.password      #服务端配置的密码文件
ignore errors


3、根据rsyncd.conf  里的内容,创建rsyncd.password密码文件(admin访问172.20.26.97的密码)
vim /etc/rsyncd.password
123369

保存退出

4、配置密码文件的权限
chmod 600 /etc/rsyncd.password      #给rsyncd.password赋予600权限

保存退出

systemctl restart rsyncd.service     #重启rsync服务


[root@gitlab run]# ps -ef | grep rsync
root     23461     1  0 15:50 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
root     23494 14904  0 15:50 pts/0    00:00:00 grep --color=auto rsync


5、配置文件同步任务

1)先手动执行推送命令,如能成功执行同步文件,即可使用脚本,配置任务计划来执行

[root@gitlab data_rsync]# rsync -av --progress  --port=873 --password-file=/etc/rsyncd.password /data/data_rsync/ admin@172.20.26.97::autobak
sending incremental file list
./
20230710.txt
              5 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/2)

sent 114 bytes  received 41 bytes  62.00 bytes/sec
total size is 5  speedup is 0.03

已成功将autobak模块指定路径下(/data/data_rsync/)的文件同步到172.20.26.97的对应目录下(d:\autobak)

2)创建同步脚本
mkdir -p /data/sh     #在 data下创建sh目录
vim /data/sh/34_bak.sh      #脚本内容如下:

#!/bin/bash

rsync -av --progress  --port=873 --password-file=/etc/rsyncd.password /data/data_rsync/ admin@172.20.26.97::autobak

保存退出

sh  /data/sh/34_bak.sh           # 手动运行同步脚本,查看是否成功

crontab -e   #成功后创建任务计划,计划每天凌晨3点进行同步autobak备份文件,任务计划内容如下:

0 3 * * * /bin/sh /data/sh/34_bak.sh >/dev/null 2>&1

保存退出


 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!