- http://www.samba.gr.jp/project/translation/3.6/htmldocs/manpages-3/vfs_shadow_copy2.8.html
- http://d.hatena.ne.jp/hogem/20130122/1358862685
LVMやbtrfsのsnapshotを使わなくてもrsyncの--link-dest と組み合わせれば簡単にshadow copy 使えて、昔のファイルにも復元可能にできますね。
snapshotの作成
sambaが利用するdefaultのsnapshotのディレクトリ名のformatは @GMT-%Y.%m.%d-%H.%M.%S
$ DIR=$(TZ=GMT date +@GMT-%Y.%m.%d-%H.%M.%S) $ rsync -av /path/to/data/ /path/to/snapshot/$DIR/
以後、rsyncのコピー先を、次に実行するrsync --link-destの引数に置き換えていって差分でバックアップを取っておくようにする。
$ rsync -av --delete --link-dest=/path/to/snapshot/$DIR1/ /path/to/data/ /path/to/snapshot/$DIR2
sambaの設定
- /etc/samba/smb.conf
このとき、shadowのsnapdir、basedir の末尾にはスラッシュをつけてはいけない!
snapshotのディレクトリ名のformatを変更したい場合はshadow: format で指定する。これでwindows のexplorer から右クリック、プロパティで"以前のバージョン" タブを選べば、過去のファイル・フォルダにアクセスできる。
[share1] comment = Data Directories browseable = yes writable = yes path = /path/to/data vfs objects = shadow_copy2 shadow: snapdir = /path/to/snapshot shadow: basedir = /path/to/data shadow: sort = desc
おまけ
必要ないけど、過去のファイルをさくっと見たいときに、右クリックしてプロパティ選んで、、、というのが面倒なのでsnapshotを置いている場所をread only でアクセス出来るような共有も作ってみた。pathをsnapshotのdirectoryに指定するだけですね。writable をnoにしておけばよりsnapshotっぽくなる。
[snapshot] comment = Snapshot Directories browseable = yes writable = no path = /path/to/snapshot