【アールシンク】

rsync(差分ファイル転送) とは?

💡 変わったところだけ送る、賢いお引越し屋さん
📌 このページのポイント
rsync の差分転送 送信元 file-a.txt(変更なし) file-b.txt(変更あり) file-c.txt(新規) file-d.txt(変更なし) 差分のみ転送 送信先 file-a.txt(既存) file-b.txt(更新) file-c.txt(新規追加) file-d.txt(既存) スキップ 変更転送 新規転送
rsync は変更・新規ファイルだけを転送するイメージ
ひよこ ひよこ

ファイルのコピーならcpコマンドでいいんじゃないの?

ペンギン先生 ペンギン先生

少量のファイルならcpでもいいけど、大量のファイルを定期的にバックアップしたいときはrsyncが圧倒的に速いよ。変わった部分だけを転送するから、2回目以降はあっという間なんだ。

ひよこ ひよこ

変わった部分だけってどうやって判断してるの?

ペンギン先生 ペンギン先生

ファイルサイズと更新日時を比較して、変更があったファイルだけを転送するんだ。さらに--checksumオプションを使えばハッシュ値で正確に比較もできるよ。

ひよこ ひよこ

リモートサーバーにも送れるの?

ペンギン先生 ペンギン先生

もちろん!rsync -avz -e ssh user@server:/path/ /local/path/ のようにSSH経由で安全に転送できるよ。サーバー間のデータ移行やバックアップの定番だね。

ひよこ ひよこ

間違って大事なファイルを消しちゃわないか心配…

ペンギン先生 ペンギン先生

--dry-runオプションを付ければ実際には何も実行せず、何が転送されるかだけ表示してくれるよ。本番前に必ず確認する習慣をつけるといいね。

ひよこ ひよこ

プロの現場ではどう使ってるの?

ペンギン先生 ペンギン先生

cronと組み合わせて毎日自動バックアップしたり、デプロイスクリプトに組み込んでWebサーバーにファイルを配信したりするよ。--deleteオプションを使えば、転送元で消したファイルを転送先でも消してくれる完全ミラーリングもできるんだ。ただし--deleteは強力すぎるので、必ず--dry-runで確認してから使おうね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「rsync」って出てきたら「変更分だけ賢く転送するファイル同期コマンド」と思えればだいたいOK!
📖 おまけ:英語の意味
「remote sync」 = リモート同期
💬 remote(遠隔)とsync(同期)を組み合わせた名前だよ
← 用語集にもどる