ホームページ > システムチュートリアル > Linux > LinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法

LinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法

William Shakespeare
リリース: 2025-03-21 09:12:14
オリジナル
589 人が閲覧しました

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アドレス、ユーザー名に置き換えることを忘れないでください。

LinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法

LinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法

--deleteとの真の同期:

上記のコマンドは、宛先のソースを反映しています。完全な同期(同一のコンテンツ)を確保するには、 --delete :を使用します。

 rsync -avzp  -  delete〜/local/sync/ostechnix@192.168.1.12:〜/remote/sync/
ログイン後にコピー

これにより、ソースに存在しない宛先からファイルが削除されます。偶発的なデータ損失を避けるために、 --deleteで注意してください。

LinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法

重要な考慮事項:

  • ディレクトリパスの後のトレーリングスラッシュ( / )が重要です。それらを省略すると、予期しないディレクトリの作成につながる可能性があります。
  • ソースディレクトリと宛先ディレクトリの両方で権限を確認します。
  • SSHキーベースの認証は、自動化された同期に推奨され、パスワードプロンプトを排除します。

さらなる機能強化:

  • キーベースのSSH認証: SSHキーペア( ssh-keygen )を生成し、公開キーをリモートサーバー( ssh-copy-id )にコピーし、デフォルトのキーパスを使用するか、 rsyncコマンドのプライベートキーパスを明示的に指定します。

  • リアルタイム同期(inotify): rsyncinotifywaitinotify-toolsパッケージから)を組み合わせて、ファイルの変更時に同期をトリガーします。サンプルスクリプトは、元のドキュメントで提供されています。

  • cronでのスケジューリング: cronを使用して特定の間隔で実行する同期を自動化します(例えば、毎日、1時間ごと)。 cronエントリの例は、元のドキュメントに記載されています。

  • 明示的なSSHキーパス:デフォルトのキーロケーションでは一般に不要ですが、スクリプトの秘密キーパスを明示的に指定すると、より多くの制御が可能になります。

結論:

RSYNCは、効率的なファイル同期のための強力なツールです。 SSHキーベースの認証やスケジュールされたタスクなど、そのオプションを理解し、ベストプラクティスを採用することで、信頼できる安全なデータ管理が保証されます。特に--deleteオプションを使用する場合は、生産環境にrsyncコマンドを適用する前に、常に徹底的にテストしてください。

以上がLinuxでRSYNCを使用してローカルとリモートのディレクトリを同期する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート