rsyncでバックアップ
rsyncは、変更があった部分だけを送るバックアップ専用のコピーツールです。cpのように毎回全部を丸ごと運ぶ必要がないので、2回目以降のバックアップが驚くほど速く終わります。途中で切れても再開できる強さと、ssh越しに遠く離れたマシンへも送れる柔軟さを併せ持ちます。ここでは安全に使うための一番大事な作法、末尾スラッシュと--deleteの扱いを中心に学びます。
バックアップを取る、と聞くとcpやcp -rでフォルダを丸ごと別の場所へコピーする方法を思い浮かべるかもしれない。だがそれを毎晩繰り返すとなると話は別だ。データが増えるほど、コピーにかかる時間もどんどん延びていく。
rsyncは、この問題を解決するために作られたコピーツールだ。2回目以降のバックアップでは、前回から変わっていないファイルを飛ばし、変更があった部分だけを送る。だから同じ量のデータでも、cpより圧倒的に速く終わる。
速さだけでなく、途中でネットワークが切れても再開できる点、ssh経由で離れたマシンにも送れる点も実務で重宝される理由になる。まずは一番シンプルな使い方から見ていこう。
🔁 基本の書式と主要オプション
rsyncの基本形は rsync [オプション] 送り元 送り先 だ。よく一緒に使われるのが -a と -v の2つになる。
-a はアーカイブモードの略で、ファイルの中身だけでなく、更新日時・所有者・パーミッション・シンボリックリンクといった属性もまとめて保持する。バックアップでは属性が消えると困るので、ほぼ必須のオプションと考えていい。
-v はverboseの略で、何のファイルが転送されたかを画面に表示する。動作確認をしながら進めたいときに付ける。
図のように、緑(変更なし)の部分はスキップされ、橙(更新・新規)の部分だけが実際に送られる。これがcpとの決定的な違いだ。
⚠️ 末尾スラッシュで挙動が変わる
rsyncを使い始めた人がほぼ全員つまずくのが、送り元パスの末尾に / を付けるかどうかだ。この1文字で、送り先に作られるフォルダ構造が変わってしまう。
送り元に / を付けた場合(例: ~/docs/)は、docsフォルダの「中身」を送り先へ展開する。付けない場合(例: ~/docs)は、docsフォルダ自体を送り先の中に作ってから、その中に中身を入れる。
迷ったら送り元にも送り先にも / を付ける癖にしておくとよい。「中身をそのまま複製する」という一番よくある意図と一致しやすい。意図しない階層ができてしまっても、結果を消してから付け直せばよく、rsync自体を壊す失敗ではない。
🗑️ --delete の意味と危険性
バックアップを重ねていくと、元では削除したのにバックアップ先には古いファイルが残り続けることがある。これを反映したいときに使うのが --delete オプションだ。
--delete を付けると、送り元に無いファイルは送り先からも削除される。送り先を送り元と完全一致させる指定で、便利だが一番怖いオプションでもある。
🔍 -n --dry-run で予行演習する
--delete のような破壊的な操作は、いきなり本番実行せず、まず -n または --dry-run を付けて試すのが鉄則だ。
-n を付けると、実際にはコピーも削除もせず、「もし実行したら何が起きるか」だけを表示してくれる。消えてほしくないファイルが無いかを確認してから、-n を外して本番実行する。
🌐 ssh越しにリモートへバックアップする
rsyncの強みの一つが、ネットワーク越しの別マシンへもほぼ同じ書式で送れることだ。送り先(または送り元)のパスの前に ユーザー名@ホスト名: を付けるだけでいい。
内部ではsshで暗号化して通信するので、社外のサーバーへ送る場合でも内容が漏れる心配は少ない。
リモート越しでも差分転送の仕組みは変わらないので、2回目以降は送るデータ量が減り、ネットワーク帯域にも優しい。
📅 世代の考え方——日次・週次で保険を重ねる
ここまでの--deleteは送り先を送り元に「完全一致」させる指定だった。だがこれだけだと、うっかり削除したファイルはバックアップ側からも消えてしまい、保険にならない場面がある。
そこで実務では、同期先を複数持つ「世代管理」という考え方を組み合わせることが多い。日次バックアップは直近7日分、週次バックアップは直近4週分を別フォルダに残す、といった具合だ。下書きを1枚だけ捨てずに引き出しへ残しておくのに似ており、「今」と「少し前」の両方に戻れる道を残す発想になる。
簡単な世代管理は、日付付きのフォルダ名(backup-2026-07-01のような)へrsyncの出力先を変えていくだけでも実現できる。容量は余分に食うが、復旧できる安心感の方が勝ることが多い。凝った運用にしたければ、次に学ぶスナップショットと組み合わせるとさらに強くなる。
rsyncは差分転送・再開・リモート対応という3つの強みを持つ、実務で最も使われるバックアップツールの一つだ。--deleteは必ず-nとセットで扱う、という一点さえ守れば、日々の運用で安心して使い続けられる。