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を使用してファイルをリモートサーバーに安全にコピーします。

リモートサーバーでコマンドが正常に実行されたか確認します:

ls -lah /home/user/test_backup/ [put_your_directory]

リモートサーバーからローカルマシンへのファイル転送

リモートサーバーからローカルマシンにファイルをコピーします。デフォルトでは、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.jpg

mkdir extra_files

touch 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の多様なオプションを利用することで、ワークフローを合理化し、バックアップを自動化し、自信を持ってファイルを管理できます。