🐧 Linux 総合学習プラットフォーム
中級 ・ rsync / バックアップ / 同期

rsyncで差分ミラーバックアップ

データ領域を毎晩バックアップサーバへ同期したい。2回目以降は差分だけ転送し、削除も反映される「完全な鏡」を安全に作りたい。

手順

rsync -avn --delete /data/ backup:/backup/data/まず-n(dry-run)で「実行したら何が起きるか」の一覧だけを出す。--delete付きの本番実行前に、このリハーサルを飛ばしてはいけない。
rsync -avn --delete /data/ backup:/backup/data/ | grep '^deleting' | headdry-run結果から削除される予定のファイルだけを抜いて確認する。ここに想定外のファイルが並んだら、パス指定を疑って中断する。
rsync -av --delete /data/ backup:/backup/data/確認が済んだら本実行。-aで所有者・権限・時刻を保ったまま再帰コピー、--deleteで転送元に無いファイルを先方から消し、完全な鏡にする。
rsync -av --delete --exclude='*.tmp' --exclude='cache/' /data/ backup:/backup/data/一時ファイルやキャッシュは--excludeで除外する。無駄な転送が減り、バックアップも綺麗になる。
rsync -avn --delete /data/ backup:/backup/data/ | tail -3直後にもう一度dry-runすると、差分ゼロ(転送予定なし)であることが確認できる。同期成功の裏取りとして手軽で確実。
注意rsyncは末尾スラッシュで意味が変わる(/data/は「中身を」、/dataは「dataフォルダごと」)。これと--deleteの組み合わせを間違えると先方を大量削除する。毎回-nで削除予定を見てから実行すること。

▶ 学習アプリで実務レシピを使う