安装和初始配置

安装和初始配置

是否可以使用 Windows 10 的 Windows Subsystem for Linux (WSL) 在 Windows 机器上运行 rsync 服务器?

我们有一个 Linux rsync 系统,可以轮询当前正在运行 DeltaCopy 的 Windows 机器,但偶尔会遇到奇怪的问题。希望“内置”WSL rsync 可以改善这种情况,但不知道如何安排它作为服务器运行。

答案1

我已成功让它在我的系统上运行。它不是 Windows 服务意义上的守护进程,而更像是当前用户的后台任务,但它对我来说很管用。

安装和初始配置

我为我的用户安装了 WSL,并选择了 Debian 作为 Linux 应用程序。无论如何,它应该适用于任何发行版,因为它只使用rsync

在我的 Linux 主目录中,我创建了两个文件:rsyncd.confsecrets

conf文件:

auth users = nas
secrets file = /home/peter/rsyncd/secrets
hosts allow = 192.168.1.5,192.168.1.11
log file = /home/peter/rsyncd/rsyncd.log
port = 8730
use chroot = false
read only = false

[N_Almacen]
    path = /mnt/n/Almacen/rsyncd

[N_AlmacenNB]
    path = /mnt/n/AlmacenNB/rsyncd

我使用端口 8730 以避免运行守护进程。这也是我禁用的原因chroot

机密文件像往常一样包含用户名和密码。

如何运行它

最后到了棘手的部分。如何运行它?

您可以用以下命令进行测试:

rsync --daemon --config=/home/peter/rsyncd/rsyncd.conf --no-detach

当您确信配置正常工作时,您可以删除该--no-detach选项,该命令将生成后台任务。即使您关闭所有狂欢终端任务将保留在后台。

如何在后台自动启动

那么现在如何在登录时自动运行?

创建一个 Windows 快捷方式,C:\Windows\System32\wsl.exe并在其后附加命令。完整命令如下:

C:\Windows\System32\wsl.exe rsync --daemon --config=/home/peter/rsyncd/rsyncd.conf

在此处输入图片描述

现在您可以将此快捷方式放入启动您的用户的文件夹。

答案2

–rsync路径选项可用于从另一台机器访问 WSL rsync。此选项用于指定要在远程机器上运行什么程序来启动 rsync。因此 --rsync-path='wsl rsync' 应该可以解决问题。

例如,

rsync -avhP -e ssh local_path host:remote_path --rsync-path='wsl rsync'

答案3

面对同样的问题,我发现建议的解决方案对我而言不起作用。在 Win10 Home 版本上安装了 OpenSSH 服务器,并且ssh <user>@<winpc>.some.domain在 Linux 系统上运行良好。--rsync-path='wsl rsync'在 rsync 调用中使用会导致 Win10 出现错误消息。根据精确的语法,它报告“名称中的某些语法错误”或“无法识别“wsl rsync””。

对我来说有效的解决方案是在 Win10 机器上创建一个名为的文件,C:\Windows\System32\wslrsync.bat其中包含:

@echo off
wsl rsync %*

--rsync-path=wslrsync与rsync-call结合使用。

相关内容