Linuxでネットワーク越しにファイルを管理するためのrsyncユーティリティの使い方
ava.hostingを使用したLinux上でのrsyncによるファイル管理のマスター
システム間でのファイル管理は、ネットワーク上でファイルを同期および転送するための強力なLinuxユーティリティである
rsyncを使用することで簡単になります。データのバックアップ、ディレクトリのミラーリング、またはava.hostingの高性能VPSや専用サーバー上でのファイル移行を行う場合でも、
rsyncはソースと宛先の間での変更のみをコピーすることで効率を確保します。例えば、
rsyncを使用して、リモートサーバーにava.hostingホストのウェブサイトファイルをバックアップすることで、帯域幅と時間を最小限に抑えることができます。このガイドでは、シームレスなファイル管理のために
rsyncのインストール、使用、および自動化について説明し、ava.hostingの信頼性の高いインフラストラクチャに最適化されています。
rsyncのインストール
ほとんどのLinuxディストリビューションにはrsyncがプリインストールされています。インストールされているか確認するには、次のコマンドを実行します:
rsync --version
インストールされていない場合は、ディストリビューションのパッケージマネージャを使用してインストールできます:
- Debian/Ubuntu:
sudo apt install rsync - RHEL/CentOS:
sudo yum install rsync - Fedora:
sudo dnf install rsync - Arch Linux:
sudo pacman -S rsync
📌 PuTTY SSH経由でWindowsからリモートサーバーにファイルを転送するには?
PuTTY SSH経由でWindowsでrsyncを使用するには、次のものをインストールしておく必要があります:
PuTTYによるSSH接続
rsyncおよびOpenSSHをWindowsにインストール
Pagent(オプション)でSSHキーによる自動認証
MSYS2を使用してWindowsにrsyncをインストール
MSYS2をダウンロードした場合、pacmanを使用して簡単にrsyncをインストールできます。
- MSYS2および既存のパッケージを更新
MSYS2ターミナルで次のコマンドを実行します:
pacman -Syu- MSYS2が自動的に閉じた場合は、再度開いて次のコマンドを実行します:
pacman -Su✅ このステップにより、パッケージマネージャの最新バージョンが確保されます。
- rsyncをインストール
次に、次のコマンドを使用してrsyncをインストールします:
pacman -S rsync
💡 SSH転送用にopensshが必要な場合は、それもインストールしてください:
pacman -S openssh
インストールの確認
rsyncが正しくインストールされたか確認するには、次のコマンドを実行します:
rsync --version
基本的なrsyncの構文
rsyncの基本的な構文は次のとおりです:
rsync [options] source destination
一般的に使用されるオプション
- -a : アーカイブモード(シンボリックリンク、権限、タイムスタンプなどを保持)
- -v : 詳細な出力
- -z : 転送中にファイルデータを圧縮
- -P : 転送中の進行状況を表示
- -r : ディレクトリを再帰的にコピー
- -e : リモートシェルを指定(SSHなど)
ローカルファイルの同期にrsyncを使用する
2つのローカルディレクトリ間でファイルを同期するには:
rsync -av /source/directory/ /destination/directory/
ソースの末尾のスラッシュ/は、ディレクトリ自体ではなく、ディレクトリの内容のみがコピーされることを保証します。
ネットワーク経由でrsyncを使用する
リモートサーバーへのファイル転送
ローカルシステムからリモートサーバーにファイルを転送するには:
rsync -avz /local/directory/ user@remote_host:/remote/directory/*MSYS2にコマンドを追加した後、リモートサーバーに接続するためのSSHデータを追加し、結果が表示されます:
このコマンドは、SSHを使用してファイルをリモートサーバーに安全にコピーします。
リモートサーバーでコマンドが正常に実行されたか確認します:
リモートサーバーからローカルマシンへのファイル転送
リモートサーバーからローカルマシンにファイルをコピーします。デフォルトでは、rsyncは安全な通信のためにSSHを使用します。SSHを明示的に指定するには:
rsync -avz -e ssh /local/directory/ user@remote_host:/remote/directory/
SSHが非デフォルトポート(例:2222)を使用している場合は、次のように指定します:
rsync -avz -e "ssh -p 2222" /local/directory/ user@remote_host:/remote/directory/
余分なファイルの同期と削除
ソースに存在しない宛先の余分なファイルを削除するには:
最初のステップとして、PuttySSHターミナルに余分なファイルを追加します:
cd /home/user/test_backup/touch file1.txt file2.log file3.jpgmkdir extra_filestouch extra_files/old_file.txt特定のファイルを除外してディレクトリを同期し、rsyncはソースにもう存在しないファイルを削除します:
rsync -av --delete /source/directory/ /destination/directory/
📌 これは何をしますか?
サーバー上にあるがtest/localにはないすべてのファイルが削除されます。
MSYS2の結果

PuttySSHの結果

警告: –deleteを慎重に使用してください。これは宛先からファイルを永久に削除します。
ファイルとディレクトリの除外
特定のファイルやディレクトリを除外するには:
rsync -av --exclude 'file_or_directory' /source/ user@remote_host:/destination/MSYS2の結果

PuttySSHの結果

複数の除外を使用するには:
rsync -av --exclude={'file1','dir1','*.log'} /source/ user@remote_host:/destination/
バックグラウンドプロセスとしてrsyncを実行する
rsyncをバックグラウンドで実行するにはnohupを使用します:
nohup rsync -avz /source/ user@remote_host:/destination/
これにより、ログアウト後もプロセスが続行されます。
ローカルディレクトリに新しいファイル new_file.txt33333333を追加し、PuttySSHターミナルを切断しました。上記のコマンドにより、サーバーが切断されていてもファイルを送信できます。

cronジョブを使用したファイル転送の自動化
cronを使用して自動同期をスケジュールするには、crontabを開きます:
crontab -e
毎日真夜中に rsyncを実行するジョブを追加します:
0 0 * * * rsync -avz /source/ user@remote_host:/destination/
結論
rsyncは、ネットワーク上での効率的な同期と転送機能を提供する、Linuxファイル管理に欠かせないツールです。WordPressサイトのバックアップ、ログのミラーリング、またはava.hostingの信頼性の高いVPS上でのデータ移行を行う場合でも、
rsyncは時間と帯域幅を節約します。例えば、
rsyncを使用して、ava.hostingサーバーの
/var/wwwディレクトリをリモートロケーションに安全にバックアップし、データの安全性を確保できます。ava.hostingの高性能インフラストラクチャと
rsyncの多様なオプションを利用することで、ワークフローを合理化し、バックアップを自動化し、自信を持ってファイルを管理できます。



