ディレクトリの同期
同期には
rsync コマンドを使用
詳しくは
rsync – 高速なファイル同期(バックアップ) – Linuxコマンド
を参考に
今回は /home/vagrant/以下を
/var/tmp/ へコピー
1 | rsync -av /home/vagrant/ /var/tmp/ |
オプションの
a はファイル属性をそのままコピー
v はファイルのログ出力になります
コピーしたときに同じになるので
1 | ll /home/vagrant/ | head -n5 |
と
1 | ll /var/tmp/ | head -n5 |
の実行結果は同じになる
ちなみに、コピーするときに
/home/vagrant
と
/home/vagrant/
では意味が変わる
最後の / がないと、ディレクトリごと
コピーしてしまう
nao,rsync コマンドは
変更のあったファイルや新規ファイルなど
変化のあったものだけを同期する
つまり差分バックアップみたいなかんじ
なので
2回目は時間短縮できる
実際の時間を計るため
time コマンドを使い計測
timeコマンドの詳細は
【 time 】 指定したコマンドの実行時間を表示する
を参考に
実行するコマンドは
1 | time rsync -av /home/vagrant/ /var/tmp/ |
1回目の結果は
1 2 3 | real 0m2.055s user 0m0.538s sys 0m1.111s |
2回目の結果は
1 2 3 | real 0m0.422s user 0m0.065s sys 0m0.228s |
というようにかなり短縮される
注意点は、少しでも変化があれば
同期対象にしてしまう
これは仮想マシンなど
GB単位のファイルで行われることになる
あと、スクリプトで実行するときなど
/etc/ のように
sudo がないと同期できないものもあるので注意