rsync アールシンク

英語表記rsync

日本語表記差分同期

正式名称rsync

危険度注意

What does it mean?

差分転送を行う同期コマンドです。属性保持、削除反映、除外指定、試行実行ができ、実務での出番が非常に多いです。

Command Quest

rsync を今日の道具にする

差分転送を行う同期コマンドです。属性保持、削除反映、除外指定...

$ rsync [オプション]... 送信元 送信先
関連用語19
次のコマンド0
FAQ2
参照4

概要

差分転送を行う同期コマンドです。属性保持、削除反映、除外指定、試行実行ができ、実務での出番が非常に多いです。

基本構文

rsync [オプション]... 送信元 送信先

詳細解説

rsyncは、送信元と送信先の差分を見ながら、必要な部分だけを効率よくコピーするコマンドです。単純なcpやscpに比べて、再実行しやすく、大量データでも無駄な転送を抑えやすい点が大きな利点です。

実務では、バックアップ、デプロイ、ログ収集、データミラーリング、保守時の避難コピーなど幅広く使われます。-aで属性をなるべく保ち、-nで試行実行し、--deleteで送信元にないものを消す、といった組み合わせが典型です。

ただし、末尾スラッシュの有無で「ディレクトリそのものをコピーするのか、中身だけをコピーするのか」が変わる点、--deleteで受信先の不要ファイルを消す点は必ず理解してから使う必要があります。

このコマンドを使う場面

バックアップ、配布、デプロイ、遠隔保守、差分コピー、途中失敗後の再実行を安全に行いたい時に使います。

まず安全に試す方法

1. mkdir -p /tmp/rsync-demo/src /tmp/rsync-demo/dest
2. printf "hellon" > /tmp/rsync-demo/src/a.txt
3. rsync -avn /tmp/rsync-demo/src/ /tmp/rsync-demo/dest/
4. rsync -av /tmp/rsync-demo/src/ /tmp/rsync-demo/dest/
5. find /tmp/rsync-demo/dest

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. -nを付けて、実際に変更せず同期計画だけ確認します。

  2. srcとsrc/で結果がどう変わるかを比較します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02.2 基本的なファイル管理の実行
    根拠: official
    LinuCレベル1では、アーカイブ、展開、圧縮、転送を含む基本的なファイル操作が重視されます。
  • LPIC-1
    範囲: 103.3 Perform basic file management
    根拠: official
    LPIC-1では、圧縮、展開、アーカイブ、転送を含む基本的なファイル管理が扱われます。
  • LinuC レベル2
    範囲: 運用自動化と実践的な同期運用
    根拠: editorial
    上位レベルでは、差分転送、リモート同期、バックアップ運用の理解が実務的な重要性を持ちます。
  • LPIC-2
    範囲: 実運用でのデータ同期と保守
    根拠: editorial
    LPIC-2相当の運用では、差分同期や安全なリモートコピーを理解しておくと実務で役立ちます。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、rsyncはLinux運用の基礎体力を支える重要なコマンドです。

オプション

  • -a
    再帰、権限、時刻などをまとめて保持しやすい代表オプションです。
    rsync -a src/ dest/
  • -v
    処理内容を詳しく表示します。
    rsync -av src/ dest/
  • -n
    試行実行し、実際には変更しません。
    rsync -avn src/ dest/
  • --delete
    送信元にない項目を送信先から削除します。
    rsync -av --delete src/ dest/
  • -e リモートシェル
    SSHなどの通信手段を明示します。
    rsync -av -e ssh src/ host:/path/

実行結果サンプル

  • mkdir -p src dest printf "hellon" > src/a.txt rsync -av src/ dest/
    sending incremental file list
    a.txt
  • rsync -avn --delete src/ dest/
    sending incremental file list
    (no changes made)

戻り値コード

  • 0 正常終了。同期処理に成功しました。
  • >0 対象不存在、通信失敗、権限不足、除外設定不整合などで処理できませんでした。

使用例

  • rsync -av src/ dest/
  • rsync -avn src/ dest/
  • rsync -av --delete src/ dest/
  • rsync -av -e ssh src/ user@host:/srv/backup/

よくあるエラー

  • 思っていた場所と違う階層へコピーされた
    原因: 送信元パス末尾のスラッシュ有無で、ディレクトリ自体を作るか中身だけを入れるかが変わりました。
    対処: srcとsrc/の違いを明確にし、試行実行で確認します。
  • 同期後に送信先のファイルが消えた
    原因: --deleteで送信元にない項目を削除しました。
    対処: --deleteは-nで結果確認してから使います。

導入・互換性情報

rsyncは専用プロトコルでもSSH経由でも動作します。バージョン差で既定暗号やチェックサムの挙動が変わることがあるため、異なる環境間ではオプション互換性も確認してください。

注意点 / セキュリティリスク

危険度は中程度です。末尾スラッシュの有無、--delete、除外設定の不足は大事故につながります。まず-nで計画を確認してください。

FAQ

  • Q. cpやscpでは駄目ですか。
    A. 単発コピーなら十分なこともありますが、差分同期、再実行、削除反映、属性保持まで考えるならrsyncが非常に強力です。
  • Q. 最初に必ず付けたい安全策は何ですか。
    A. まずは-nで試行実行し、何がコピー、更新、削除されるのかを確認することです。

関連用語

  • backup
  • restore
  • snapshot
  • clone
  • deduplication
  • rsync
  • live migration
  • NAS
  • cloud
  • IaaS
  • image
  • template
  • object storage
  • file storage
  • immutable infrastructure
  • configuration drift
  • disaster recovery
  • CI/CD
  • build artifact

参照リンク

関連記事