ウェブサイト検索

LinuxとWindows間でファイルを同期するためのRsyncの使用方法


LinuxとWindowsの間でファイルを同期することは、特に利用可能なツールに不慣れな場合、難しく感じるかもしれません。しかし、Windows Subsystem for Linux(WSL)を使用すると、このプロセスはずっと簡単になります。

WSLは、Windows上で直接Linux環境を実行できるため、Rsyncなどの強力なLinuxツールを使用して、2つのオペレーティングシステム間でファイルを同期することができます。

この記事では、WSLを使用してLinuxとWindowsの間でファイルを同期するためのRsyncの全過程を説明します。WSLの設定から自動同期のためのスクリプトの作成まで、すべてをカバーします。

最終的には、これら2つのプラットフォーム間でファイルの同期を効率的に管理する方法について明確に理解できるようになります。

Rsyncとは何ですか?

Rsync(「リモート同期」の略)は、2つの場所間でファイルやディレクトリを同期させるために使用されるコマンドラインツールで、ファイルの変更された部分のみを転送するため、非常に効率的です。そのため、毎回すべてをコピーするのではなく、大きなファイルや多数のファイルの同期に最適です。

なぜWSLでRsyncを使用するのか?

  • WSLは、LinuxコマンドやツールをWindows上で直接実行できるようにし、Rsyncの使用を容易にします。
  • Rsyncはファイル間の違いのみを転送し、時間と帯域幅を節約します。
  • LinuxマシンとWindowsマシンの間でファイルを簡単に同期できます。
  • Rsyncはスクリプトを使用して自動化できるため、定期的なバックアップや同期作業に最適です。

前提条件

始める前に、次のものを用意してください:

  • WSLはWindows 10および11のバージョンでサポートされています。
  • あなたのWindowsマシンにWSLをインストールして設定する必要があります。
  • Microsoft StoreからLinuxディストリビューション(例:Ubuntu)をインストールします。
  • Rsyncは通常Linuxディストリビューションにプリインストールされていますが、インストールされていない場合のインストール方法について説明します。
  • RsyncはSSHを使用してシステム間でファイルを安全に転送します。

ステップ1: WSLのインストールと設定

まだWSLをインストールしていない場合は、Win + Xを押して管理者としてPowerShellを開き、「Windows PowerShell (管理者)」または「コマンド プロンプト (管理者)」を選択し、以下のコマンドを実行してWSLをインストールします。

wsl --install

このコマンドはWSLとデフォルトのLinuxディストリビューション(通常はUbuntu)をインストールします。インストール後、設定を完了するためにコンピュータを再起動してください。

コンピュータが再起動したら、スタートメニューからインストールしたLinuxディストリビューション(例:Ubuntu)を開いてください。画面の指示に従ってユーザーアカウントを作成し、パスワードを設定します。

ステップ2: WSLにRsyncをインストールする

Rsyncは、ほとんどのLinuxディストリビューションに通常プリインストールされています。ただし、インストールされていない場合は、次のコマンドを使用してインストールできます。

sudo apt update
sudo apt install rsync
rsync --version

これにより、インストールされたRsyncのバージョンが表示されるはずです。

ステップ3: WSLでSSHを設定する

WSLでSSHを有効にするには、OpenSSHサーバーをインストールする必要があります。

sudo apt install openssh-server

次に、WSLを起動するたびに自動的に開始するようにSSHサービスを起動して有効にします。

sudo service ssh start
sudo systemctl enable ssh

SSHサービスが稼働していることを確認してください。

sudo service ssh status

ステップ4: Linux(WSL)からWindowsにファイルを同期する

今やRsyncとSSHが設定されたので、ファイルの同期を開始できます。あなたのWSL環境からWindowsマシンのディレクトリにファイルを同期したいとしましょう。

Linuxディストリビューション(例:Ubuntu)を起動し、通常は/mnt/の下にマウントされるWindowsディレクトリを特定します。例えば、あなたのC:ドライブは/mnt/c/にあります。

次に、WSL ディレクトリから Windows ディレクトリにファイルを同期するためのコマンドを実行します:

rsync -avz /path/to/source/ /mnt/c/path/to/destination/

コマンドの説明:

  • -a: アーカイブモード(権限、タイムスタンプ、およびシンボリックリンクを保持します)。
  • -v: 詳細モード(詳細な出力を提供します)。
  • -z: 転送中にデータを圧縮します。
  • /path/to/source/: あなたのWSL環境で同期したいディレクトリ。
  • /mnt/c/path/to/destination/: あなたのWindowsマシン上でファイルを同期したいディレクトリです。

ステップ5: WindowsからLinux(WSL)へのファイル同期

WindowsディレクトリからWSL環境にファイルを同期したい場合は、似たようなコマンドを使用できます:

rsync -avz /mnt/c/path/to/source/ /path/to/destination/

コマンドの説明:

  • /mnt/c/path/to/source/: あなたのWindowsマシンで同期したいディレクトリ。
  • path/to/destination/: あなたのWSL環境内でファイルを同期したいディレクトリです。

ステップ6: スクリプトを使って同期を自動化する

同期を容易にするために、プロセスを自動化するためのbashスクリプトを作成することができます。

nano sync.sh

スクリプトに次の行を追加してください。

#!/bin/bash
rsync -avz /path/to/source/ /mnt/c/path/to/destination/

ファイルを保存し、スクリプトを実行可能にします:

chmod +x sync.sh

スクリプトを実行してファイルを同期します。

./sync.sh

cronを使用して、スクリプトを特定の間隔で実行するようにスケジュールできます。たとえば、スクリプトを毎日午前2時に実行するには、次の行をcrontabに追加します:

0 2 * * * /path/to/sync.sh
結論

RsyncをWSLで使用することは、LinuxとWindowsの間でファイルを同期させる強力で効率的な方法です。この文章で説明されている手順に従うことで、Rsyncを簡単に設定し、SSHを構成し、ファイルの同期を自動化できます。

関連記事: