tarによる差分圧縮における留意点

tarコマンドを使ったバックアップを多用する。

パーミッションなど属性情報が適切に保存される点が気に入っている。
アーカイブをWindowsのPCにrsyncで保管しても問題ない。

この運用のなかで、アーカイブ自体を元となるサーバ自身に保存させるような場合、ディスクの空きに不安が出てくる。
つまり、サーバ自身にもバックアップは持たせておきたいし、他のコンピュータにも退避はしておきたいのである。

そこで、tarコマンドで差分圧縮などできないものかと思って探りを入れてみた。

Linux系: -N YYYY-MM-DD
BSD系: –newer-mtime YYYY-MM-DD

※他にも–newer-~~というオプションがいくつかある

日曜日に必要とする全体バックアップを取り、月~土にかけては日曜日から変化した差分だけを圧縮すると仮定する。
ここでは日曜日に作成したバックアップを「基礎アーカイブ」、月~土のバックアップを「差分アーカイブ」と呼ぶこととする。

月~土はstatコマンドなどで基礎アーカイブの日付を取得し、YYYY-MM-DDの書式でコマンドを整えればよい。

ただ、これは日付のみを信頼するという点で厳密には差分ではない点には十分留意すべきである。
tarアーカイブの中身と現実のファイルシステムとの比較は行っていない。
本来、この手法の目論見は
「基礎アーカイブと、差分アーカイブのうちいずれか1つがそろえば概ね復帰ができる」
という考え方をよりどころとしている。

基礎アーカイブ取得の段階でアーカイブされるべきファイルが1000あるうち700までで止まってしまったとする。
残り300ファイルのうち、翌日のバックアップ走行までに50ファイルが更新されたとする。
翌日の差分アーカイブはこの50ファイル分しか取得されず、250ファイルはバックアップされない。

そこで代案であるが、基礎アーカイブの内容を下記のような要領でテキストファイルに出力して、除外オプションに使用するということではどうだろうか。

tar tvzf kisoarc.tar.gz > exclude.txt

これでも、「基礎アーカイブに含まれていながら破損したファイル」が差分ファイルに含まれない形になってしまうが、かなり傷は浅いと思われる。

バックアップは完ぺきなものができるのが望ましくはあるが、それはできないこともあるという視野を持ち最終的には
「できるだけ取る」
というものと、今はそう思っているのである。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


名前:たにさん or たにぐちさん
職業:むかし、元オタク
  • アーカイブ

  • 最近の投稿

  • 最近のコメント

  • イマ☆ドキ地味なアクセス件数