除外つきアーカイブと検証
アプリ一式を退避したいが、ログやキャッシュは含めたくない。除外条件つきでtarを作り、壊れていないか検分してから所定の場所へ展開したい。
手順
du -sh /opt/myapp先に元のサイズを把握する。アーカイブ後のサイズと見比べれば、除外が効いたかどうかの目安になる。tar czf /backup/myapp-20260712.tar.gz --exclude='*.log' --exclude='cache' -C /opt myapp--excludeでログとキャッシュを除外して圧縮アーカイブを作る。-C /optで基準ディレクトリを移してから相対パスで格納すると、展開時に扱いやすい。tar tzf /backup/myapp-20260712.tar.gz | head -20-tで中身の一覧を検分する(展開はしない)。絶対パスで入っていないか、除外したはずのファイルが混ざっていないかを見る。tar tzf /backup/myapp-20260712.tar.gz | grep -c '\.log$'除外の効き目を機械的に確認する。0が返れば.logは1件も入っていない。目視だけに頼らない検品。mkdir /tmp/restore-test && tar xzf /backup/myapp-20260712.tar.gz -C /tmp/restore-test-Cで指定した試験用ディレクトリに展開してみる。「復元できることを確かめて初めてバックアップ」であり、作りっぱなしは未完成。diff -r --exclude='*.log' --exclude='cache' /opt/myapp /tmp/restore-test/myapp | head元と展開結果を突き合わせる。差分が除外対象だけなら合格。確認後に試験用ディレクトリは片付ける。⚠
注意tarの展開はカレントディレクトリに中身をぶちまけるのが既定動作。展開前に必ず-tで中身の構造を確認し、-Cで展開先を明示すること。既存ファイルへの上書きも警告なしで起きる。