RSYNC:ローカルとリモートのディレクトリを同期するための強力なツール
RSYNCは、ディレクトリを同期するための堅牢で汎用性の高いユーティリティであり、修正されたファイル部分のみを効率的に転送します。これにより、2つのマシン間でも単一のシステムでも、頻繁に更新されるファイルを使用して大規模なディレクトリを管理するのに最適です。その柔軟性は、SSH統合、データ圧縮、ファイル属性の保存(許可とタイムスタンプ)、ソースに存在しない宛先からファイルを削除する機能などの機能によって強化されます。
RSYNCコマンド構造:
rsync [options] [source] [宛先]
重要なRSYNCオプション:
-a
( --archive
):重要なファイルメタデータ(シンボリックリンク、許可、タイムスタンプ)を保存します。-v
( --verbose
):詳細な出力を提供します。-r
( --recursive
):再帰的にディレクトリを処理します。--delete
:ソースにない宛先からファイルを削除します。真の同期に不可欠です。-z
( --compress
):転送中にデータを圧縮し、帯域幅を保存します。-h
( --human-readable
):ユーザーフレンドリーな形式でファイルサイズとその他の数値データを表示します。-P
: --partial
(履歴書の中断された転送)と--progress
(転送の進行状況を表示)を組み合わせます。同期シナリオとセットアップ:
RSYNCは、さまざまなタスクに役立ちます。データをリモートサーバーにバックアップし、マシン間のファイルを共有し、コードを生産に展開し、開発環境とステージング環境間の一貫性を維持します。
このガイドの例では、以下を使用します。
ローカルシステム: Debian 11デスクトップ、ローカルディレクトリ: ~/local/sync/
リモートシステム: Debian 12サーバー、リモートユーザー: ostechnix
、リモートIP: 192.168.1.12
、リモートディレクトリ: ~/remote/sync/
基本的な使用法:
rsync
がインストールされ、アクセス許可が正しく設定されていると仮定すると、次のコマンドコピー/ローカルディレクトリをリモートに同期します。
rsync -avzp〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
プレースホルダーを実際のパス、IPアドレス、ユーザー名に置き換えることを忘れないでください。
--delete
との真の同期:
上記のコマンドは、宛先のソースを反映しています。完全な同期(同一のコンテンツ)を確保するには、 --delete
:を使用します。
rsync -avzp - delete〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
これにより、ソースに存在しない宛先からファイルが削除されます。偶発的なデータ損失を避けるために、 --delete
で注意してください。
重要な考慮事項:
/
)が重要です。それらを省略すると、予期しないディレクトリの作成につながる可能性があります。さらなる機能強化:
キーベースのSSH認証: SSHキーペア( ssh-keygen
)を生成し、公開キーをリモートサーバー( ssh-copy-id
)にコピーし、デフォルトのキーパスを使用するか、 rsync
コマンドのプライベートキーパスを明示的に指定します。
リアルタイム同期(inotify): rsync
とinotifywait
( inotify-tools
パッケージから)を組み合わせて、ファイルの変更時に同期をトリガーします。サンプルスクリプトは、元のドキュメントで提供されています。
cron
でのスケジューリング: cron
を使用して特定の間隔で実行する同期を自動化します(例えば、毎日、1時間ごと)。 cron
エントリの例は、元のドキュメントに記載されています。
明示的なSSHキーパス:デフォルトのキーロケーションでは一般に不要ですが、スクリプトの秘密キーパスを明示的に指定すると、より多くの制御が可能になります。
結論:
RSYNCは、効率的なファイル同期のための強力なツールです。 SSHキーベースの認証やスケジュールされたタスクなど、そのオプションを理解し、ベストプラクティスを採用することで、信頼できる安全なデータ管理が保証されます。特に--delete
オプションを使用する場合は、生産環境にrsync
コマンドを適用する前に、常に徹底的にテストしてください。
以上がLinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。