古いファイルを上書きしないように同期

古いファイルを上書きしないように同期

この場合、rsync コマンドの
-u オプションをつかう

本来は、2つのマシンでやる予定だったけど
用意できなかったので、今回はローカルで実践

rsync コマンドについては

rsync – 高速なファイル同期(バックアップ) – Linuxコマンド

を参考に

まずはテストディレクトリを作成して実験

mkdir test

次にサンプルを書籍のものをつかうことに

cp -rp ~/GihyoShellBookSamples-master/chapter3/事務 .

もう一つ作成したディレクトリにもコピー

cd test
cp -rp ~/GihyoShellBookSamples-master/chapter3/事務 .

これで準備ok

cd
vim 事務/厄介な仕事.txt 

でファイルを編集し
1行目末尾に done を追加

その後、rsync で同期する

rsync -av 事務/ test/事務/

これで同期するけど
このとき間違えて
test 側から同期するとデータが古くなってしまう

rsync -av test/事務/ 事務/

となってしまうとデータが古くなる

この対策として
-u オプションをつける
これをつけることで
タイムスタンプを比較し
新しいものを残すようになる

rsync -avu test/事務/ 事務/

これで更新したファイルだけ同期になる

なお、これだけだと、test のほうは古いままなので

rsync -avu 事務/ test/事務/
cat test/事務/厄介な仕事.txt

というように相互に行えば
更新したファイルを相互に同期することができる

注意点は、ファイルの変更の有無ではなく
タイムスタンプなので
ファイルを開いて保存するだけでも対象になってしまうこと

今回はローカルでのファイルだけど
これをリモートマシンでやれば
簡易バックアップができる

コメントを残す

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