Windows11でrsyncを使う方法

Debian13-Windows11間で高機能コピーソフトが必要になったのでrsyncを使おうといじくり回してたら使うことに成功したので共有。

検証環境・バージョン

送り側:
Windows 11 Pro 24H2
rsync 3.4.1 protocol version 32
Powershell Core x64 7.5.3 + oh-my-posh
受け側:
Debian 13.1.0
rsync 3.4.1 protocol version 32
zsh 5.9 (x86_64-debian-linux-gnu) + oh-my-zsh
転送方法: rsyncd

前提条件、想定読者

  • MSYS2がインストール済みであり、インストールディレクトリ\usr\binへのPathがWindows上で通っている
  • 7-Zipがインストールされており、使用可能である
  • 「Pathを通す」などの用語が理解できる
  • (このページにある内容を理解できる)

手順

1. rsyncをダウンロード&展開

MSYS2 repoから、最新版のrsync(rsync-◯.◯.◯-◯-x86_64.pkg.tar.zst)をダウンロードします。

適当な場所に7-Zipで展開して、展開後のusr/binにPathを通しておきます(自分の場合はC:\Applications\rsyncに展開しました)。

2. libxxhashをダウンロード&展開

MSYS2 repoから、最新版のlibxxhash(libxxhash-◯.◯.◯-◯-x86_64.pkg.tar.zst)をダウンロードします。

MSYSのインストールディレクトリ(既定だとC:\msys64)\usr\libに、中身のmsys-xxhash-0.dllを配置します。

3. 受け側でrsyncdを立ち上げる

まず、受け側の/etc/rsyncd.confを作成します。(下は一例)

[work]
path = /home/yu-yu0202/rsynctest
uid = yu-yu0202
gid = yu-yu0202
read only = no
list = yes

次にrsyncdを起動します。
sudo systemctl enable --now rsync
sudo systemctl start rsync

sudo systemctl status rsyncがactive (running)になっていれば大丈夫です。

4. ファイルを転送する

送り側から転送コマンドを叩きます。
rsync -av $env:USERPROFILE\Document\rsync_test rsync://yu-yu0202@devenv.local/rsynctest

もちろんexcludeオプションなども使えます。

終わりに

いかかだったでしょうか。

Windowsはrsyncを標準搭載してほしいですね、curlみたいに()
ではでは~(@^^)/~~~

コメント

タイトルとURLをコピーしました