ディレクトリの同期する rsync コマンド

ディレクトリの同期

同期には
rsync コマンドを使用

詳しくは
rsync – 高速なファイル同期(バックアップ) – Linuxコマンド
を参考に

今回は /home/vagrant/以下を
/var/tmp/ へコピー

rsync -av /home/vagrant/ /var/tmp/

オプションの
a はファイル属性をそのままコピー
v はファイルのログ出力になります

コピーしたときに同じになるので

ll /home/vagrant/ | head -n5

ll /var/tmp/|head -n5

の実行結果は同じになる

ちなみに、コピーするときに
/home/vagrant

/home/vagrant/
では意味が変わる
最後の / がないと、ディレクトリごと
コピーしてしまう

nao,rsync コマンドは
変更のあったファイルや新規ファイルなど
変化のあったものだけを同期する
つまり差分バックアップみたいなかんじ
なので
2回目は時間短縮できる

実際の時間を計るため
time コマンドを使い計測

timeコマンドの詳細は
【 time 】 指定したコマンドの実行時間を表示する
を参考に

実行するコマンドは

time rsync -av /home/vagrant/ /var/tmp/

1回目の結果は

real	0m2.055s
user	0m0.538s
sys	0m1.111s

2回目の結果は

real	0m0.422s
user	0m0.065s
sys	0m0.228s

というようにかなり短縮される

注意点は、少しでも変化があれば
同期対象にしてしまう

これは仮想マシンなど
GB単位のファイルで行われることになる

あと、スクリプトで実行するときなど
/etc/ のように
sudo がないと同期できないものもあるので注意

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です