使用Rsync软件工具将Linux服务器上的文件同步到Windows 服务器
使用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
保存退出