このオプション知らなかった。いわゆるsnapshotのようなものが手軽にできますね。
$ rsync --help (略) --link-dest=DIR hardlink to files in DIR when unchanged
まず、一度rsyncで完全なコピーを作る。
$ rsync -avz data/ snapshot1/
この後、--link-destオプションをつけてrsyncを実行すれば、rsyncを作成する時にdataに変更があったものだけはコピーされて、変更がないものはhardlinkが作成される。(ディレクトリはhardlinkできないのでコピーされる)
このとき、--link-dest の引数を相対パスで指定する場合、コピー先のディレクトリからの相対になるので注意。(rsync実行時のディレクトリからの相対パスではない)
man rsync
If DIR is a relative path, it is relative to the destination directory.
とややこしいので、フルパスで指定するほうが良いかな。
## 相対パス $ rsync -avz --link-dest=../snapshot1/ data/ snapshot2/ ## 絶対パス $ rsync -avz --link-dest=/path/to/snapshot1/ data/ snapshot2/
以後、rsyncを実行する度に--link-dest の引数を新しいディレクトリに置き換えていく。
$ rsync -avz --link-dest=/path/to/snapshot2/ /path/to/data/ /path/to/snapshot3/
後はdateコマンドの+format オプション等と組み合わせて適当なscriptでも作ってcronで動かしとけば良いですね。