使用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

保存退出


 

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用`rsync`命令和`ssh`命令来实现在多台 Linux 服务器之间并行拷贝文件文件夹。 `rsync`是一个优秀的文件同步工具,可以快速的将本地或远程服务器文件同步到其他服务器上,同时它可以使用 SSH 连接进行加密传输,确保数据传输的安全和完整性。 以下是一个示例脚本,可以并行地将文件文件夹拷贝到多个目标服务器上: ```bash #!/bin/bash # 源文件或目录 src="source-dir" # 目标服务器的 IP 地址或域名 hosts=("server1" "server2" "server3") # 目标服务器的用户名 user="username" # 目标服务器的目标路径 dest="destination-dir" # 并行执行 rsync 命令 for host in "${hosts[@]}"; do ssh "$user@$host" "mkdir -p $dest && rsync -avz $src/ $user@$host:$dest/" & done # 等待所有任务完成 wait ``` 在这个脚本中,`src` 变量是需要拷贝的源文件或目录,`hosts` 变量是一个包含目标服务器 IP 地址或域名的数组,`user` 变量是目标服务器的用户名,`dest` 变量是目标路径。该脚本通过 SSH 连接到每个目标服务器,并在后台运行 `rsync` 命令来完成拷贝任务。`wait` 命令用于等待所有任务完成后再结束脚本执行。 需要注意的是,该脚本需要在执行之前确保已经配置好了 SSH 免密登录,否则需要手动输入密码进行登录。同时,如果文件文件夹较大,可能需要增加 `rsync` 命令的额外选项来加速拷贝,例如使用 `--progress` 显示进度信息,或使用 `--partial` 支持断点续传等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcbj_IT老混混

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值