## 🧰 rsync作業手順(初回コピー+検証) NASや外部ストレージへの手動バックアップ/退避を、信頼性高く行うためのrsyncの手順。 > [!info] なんだかんだで rsync が最強 --- ### 📁 対象フォルダの定義(例) ```bash SRC="/Users/masatora/Downloads/220400_aaaa/bbbb" DST="/Volumes/250214_cccc/220700_dddd/250417_eeee/220400_aaaa/" ``` --- ### ① 🟢 初回コピー(進捗付き・macOS特有ファイルは除外) ```bash rsync -avcn --progress --exclude='.DS_Store' "$SRC" "$DST" ``` - `SRC` フォルダごと `DST` にコピーされる - 同名フォルダがすでに存在していても、差分だけがコピーされる - `.DS_Store` を除外して、macOSのメタ情報ファイルによる誤検出を防ぐ - `-n` でdry run。実際にはコピーしないので、コピーするときに外す > ❗ **注意:検証で `-c`(チェックサム比較)を使うなら、コピー時にも `-c` を付けること!** > > `rsync -av` でコピーした場合、ファイルサイズとタイムスタンプが一致すれば中身は比較されずにスキップされる。 > その後 `-avcn`(チェックサムで検証)を実行すると、**実際には内容が一致していても差分として検出される**ことがある。 > > この差分は「コピーが失敗した」のではなく、**コピーと検証で比較基準が違うことによるrsyncの仕様上のズレ**。 > > ✅ **内容レベルで確実に一致させたい場合は、コピー時にも `-avc` を使うこと。** --- ### ② 🟡 内容一致の検証(dry run + チェックサム) ```bash rsync -avcn --progress --exclude='.DS_Store' "$SRC" "$DST" ``` - `-c` により、タイムスタンプではなく**内容(ハッシュ)で一致確認** - `-n` でdry run。実際にはコピーしない - すべてのファイルが `0%` 表示であれば、**内容一致している**と判断してよい --- ### ③ 🔁 再実行・差分同期(必要なときだけ) ```bash rsync -avc --progress --exclude='.DS_Store' "$SRC" "$DST" ``` - **再実行しても重複転送されない** - タイムスタンプや中身が違うものだけが更新される --- ### 🔒 安全な運用メモ - DSM(Synology)やFinderで手動コピーした場合も、**このテンプレで検証可能** - コピー後は必ず `-avcn` で整合性チェックを推奨 - `.DS_Store` 以外にも除外対象を増やしたい場合は `--exclude` を複数指定可能 - `--delete` は基本的に使用しない(誤削除防止のため)