Rsync工具同步Windows文件到远程Linux服务器

Rsync工具同步Windows文件到远程Linux服务器

𝓓𝓸𝓷 Lv6
一、下载Rsync

https://itefix.net/

image-20240708183714111

image-20240708183926764

二、解压安装

压缩包为绿色免安装版,将压缩包解压到合适的位置

image-20240708184744640

三、配置Windows到Linux ssh免密登录
1
C:\Users\admin>ssh-keygen -t rsa

image-20240708185102447

image-20240708185311982

四、拷贝公钥文件内容至远端服务器

将公钥id_rsa.pub的内容复制并粘贴到远程Linux服务器/root/.ssh/authorized_keys文件里面,如果没有authorized_keys文件,则手工创建: vi authorized_keys 或touch authorized_keys

[root@vps ~]# pwd
/root
[root@vps ~]# cd .ssh/
[root@vps .ssh]# vi authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCsYoxatHlkMaXPOnn6vrIP9U0JJuMig/x/R7gns3pVelSXsfC+OzytkjSf2dV2rRiEXb4K/bGRCMq9siURynhtfxWiwBZwU3QORMMqNRg34qWIKRO7mTy2iIV7ZogDCepWBrhBN3gLvnW7gJW3KetgZFmw2VOq8YDiS5iaX0e9QJbVxkBh6zMrwIA53FdNRC44By+WqZlqLWmn6VPjW/zyKn2EniMJkNVbQKiVefPo0y7wn37EQqSaCnDqF5dKp8+yANy8DXnqf5djT/OX/wdcmlyTrcjSxPc2bSrEO/cEMlQ0/dgOjNCcUCSF+sJ7nnGStuuL9WHUG/vvg/butPqX7h+XCq1QLa+LCj8LAkvnLSTVwbiNOUY+2yPtgtZOhaUzxWN3gXzDd+CHmuq7fGU7Iq/jmLORNw1jeDnvPELu4nOU8IUjGtDJL0kSyY5ik38uzcItKwXGEAsMZQ7ONGBXgiwtJDKe3mVtD+1A7AoVP7jY1UKEHGDahA8CLM4JPrU= admin@DESKTOP-JJN2EOG

五、连接远程Linux服务器测试连接

ssh root@远程服务器IP地址,首次连接需要输入yes确认连接,下次连接不会再提示

1
C:\Users\admin>ssh root@64.16.72.165

image-20240708191428348

六、开启同步
1.本地同步
1
rsync -avz --update --progress /source/directory/ /destination/directory/
2.通过ssh同步到远程

/cygdrive/C/test : 指源路径 c:\test 文件夹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
---默认端口22
rsync.exe -avz --update --progress /cygdrive/C/test root@64.16.72.165:/mnt/

---指定端口
rsync.exe -avz -e "ssh -p 1314" --update --progress /cygdrive/C/test root@64.16.72.165:/mnt

注意:上面命令是指把c:\test文件夹及文件夹下面的内容同步到远程服务器/mnt下

rsync.exe -avz -e "ssh -p 1314" --update --progress /cygdrive/C/test/ root@64.16.72.165:/mnt
注意:上面命令是指把c:\test文件夹下面的内容同步到远程服务器/mnt下

---不同步1.txt和2.txt两个文件以及file文件夹
rsync.exe -avz -e "ssh -p 1314" --update --progress /cygdrive/C/test/ root@64.16.72.165:/mnt --exclude=1.txt --exclude 2.txt --exclude ‘file’

---删除源端不存在,目标端存在的文件--delete或--delete-before
rsync.exe -avz --delete-before -e "ssh -p 1314" --update --progress /cygdrive/C/test/ root@64.16.72.165:/mnt

---修改目标端文件权限--chown=git:git --chmod=go=rX
rsync.exe -avz --chown=git:git --chmod=go=rX --delete-before -e "ssh -p 1314" --update --progress /cygdrive/C/test/ root@64.16.72.165:/mnt

3.通过rsync守护进程同步
1
2
3
4
5
rsync -avz --update --progress /source/directory/ rsync_user@remote::rsync_module

在这个例子中,我们使用rsync守护进程来同步文件。rsync_user是远程主机上的rsync用户,::rsync_module指定了远程主机上的rsync模块。这个命令会将源目录中的所有更新过或新增的文件同步到远程主机的rsync模块中。

注意:在使用rsync时,你需要确保你有足够的权限来访问和修改你想要同步的文件和目录。
七、设置任务计划自动执行同步

Windwos11创建任务计划步骤: 在开始菜单中搜索“任务计划程序”并打开,右键任务计划程序(本地),在弹出菜单中选择创建基本任务

1.创建Bat批处理脚本
1
2
3
4
5
6
---创建Rsync.bat脚本,脚本内容如下:

@echo off
set source_path=/cygdrive/C/Users/admin/Blog
rsync.exe -avzP --chown=git:git --chmod=go=rX --delete-before -e "ssh -p 1314" --update --progress %source_path%/ root@64.16.72.165:/opt/backup --exclude=html.20240615.tar --exclude=1.txt --exclude 2.txt --exclude 'WordPress_Backup'
pause
2.创建定时任务

image-20240708214758607

image-20240708220649312

image-20240708215501612

image-20240708215639273

image-20240708215701714

image-20240708220300043

image-20240708221021395

image-20240708221206732

八、报错处理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
C:\cwrsync_6.3.0_x64_free\bin>rsync.exe -avz -e "ssh -p 1314" --update --progress /cygdrive/C/test root@64.16.72.165:/m
nt/
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [Receiver=3.1.2]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(231) [sender=3.3.0]




原因:
电脑是Win11安装了Openssh,环境变量中记录的是OpenSSH环境变量

解决方法:
将C:\cwrsync_6.3.0_x64_free\bin添加到环境变量,放在OpenSSH环境变量之前,重新打开新的窗口执行成功

C:\Users\admin>rsync.exe -avz -e "ssh -p 1314" --update --progress /cygdrive/C/test root@64.16.72.165:/mnt
The authenticity of host '[64.16.72.165]:1314 ([64.16.72.165]:1314)' can't be established.
ED25519 key fingerprint is SHA256:iS7w1xCuCJc8ec38E+TP1xuyyWle6hs3yzjYzJy3VAo.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[64.16.72.165]:1314' (ED25519) to the list of known hosts.
sending incremental file list
test/

sent 69 bytes received 20 bytes 5.39 bytes/sec
total size is 0 speedup is 0.00

image-20240708210506981

  • Title: Rsync工具同步Windows文件到远程Linux服务器
  • Author: 𝓓𝓸𝓷
  • Created at : 2024-07-08 18:31:36
  • Updated at : 2024-07-20 05:15:41
  • Link: https://www.zhangdong.me/windows-rsync-linux.html
  • License: This work is licensed under CC BY-NC-SA 4.0.
评论