やりたいこと
rsyncで何日間分かのバックアップをとるときに、サーバのディスク容量(inode)とか節約したい
環境
サーバ構成
server01: データサーバ
server02: バックアップサーバ
対象データ(server01)
server01
$ ls -1 data
file1
file2
節約できてないやり方。
(1) ある日(10/22)のバックアップ
server01
$ rsync -a data/ server02:~/data_20171022
server02
$ ls -1 data_20171022/
file1
file2
(2) 次の日(10/23)のバックアップ
server01
$ rsync -a data/ server02:~/data_20171023
server02
$ ls -1 data_20171023/
file1
file2
バックアップできてるけど、inodeが22日と23日で違う
server02
$ ls -1i data_2017102*/
data_20171022/:
923274 file1
923275 file2
data_20171023/:
923277 file1
923278 file2
節約できてるやり方。
(1) ある日(10/22)のバックアップ
※ここは同じ
server01
$ rsync -a data/ server02:~/data_20171022
server02
$ ls -1 data_20171022/
file1
file2
(2) 次の日(10/23)のバックアップ
※--link-destを使用
server01
$rsync -a data/ server02:~/data_20171023 --link-dest=../data_20171022
server02
$ ls -1 data_20171023/
file1
file2
inodeが22日と23日で同じになって節約できた
server02
$ ls -1i data_2017102*/
data_20171022/:
1053235 file1
1053236 file2
data_20171023/:
1053235 file1
1053236 file2
備考
- --link-destはバックアップするディレクトリからの相対パス
→[追記] rsync対象が絶対パスなら--link-destに指定するパスは絶対ぱすでもいいような気もする。 - -aオプションを付けなくてはだめ。(具体的には-t) ←これがわからなくて嵌った。