古いファイルを上書きしないように同期
この場合、rsync コマンドの
-u オプションをつかう
本来は、2つのマシンでやる予定だったけど
用意できなかったので、今回はローカルで実践
rsync コマンドについては
rsync – 高速なファイル同期(バックアップ) – Linuxコマンド
を参考に
まずはテストディレクトリを作成して実験
1 | mkdir test |
次にサンプルを書籍のものをつかうことに
1 | cp -rp ~ /GihyoShellBookSamples-master/chapter3/ 事務 . |
もう一つ作成したディレクトリにもコピー
1 2 | cd test cp -rp ~ /GihyoShellBookSamples-master/chapter3/ 事務 . |
これで準備ok
1 2 | cd vim 事務/厄介な仕事.txt |
でファイルを編集し
1行目末尾に done を追加
その後、rsync で同期する
1 | rsync -av 事務/ test /事務/ |
これで同期するけど
このとき間違えて
test 側から同期するとデータが古くなってしまう
1 | rsync -av test /事務/ 事務/ |
となってしまうとデータが古くなる
この対策として
-u オプションをつける
これをつけることで
タイムスタンプを比較し
新しいものを残すようになる
1 | rsync -avu test /事務/ 事務/ |
これで更新したファイルだけ同期になる
なお、これだけだと、test のほうは古いままなので
1 2 | rsync -avu 事務/ test /事務/ cat test /事務/厄介な仕事.txt |
というように相互に行えば
更新したファイルを相互に同期することができる
注意点は、ファイルの変更の有無ではなく
タイムスタンプなので
ファイルを開いて保存するだけでも対象になってしまうこと
今回はローカルでのファイルだけど
これをリモートマシンでやれば
簡易バックアップができる