私は次のコマンドでrsyncを使用して「プライマリ」ハードドライブを正常にバックアップしてきました。
rsync -aivr --delete --progress /src/my-files/ /dest/my-files
しかし、私は外付けドライブを持ち歩いてそこにあるファイルを修正することもできます。上記のコマンドはこれらの変更を消去します。また、維持したい両方のドライブを変更した可能性があるため、srcとdestを交換することはできません。
私が望む行動はこれです。
# rsync walks the src drive
# if a file is present in src that is not present in dest, then copy the file to dest
# if a file is present both in src and in dest, then compare modification times
# and overwrite using the later one.
# if a file is present on dest but is not on src, then copy the file from dest to src.
上記の動作を得るためにrsyncを使用できますか?
答え1
rsync
一方向の仕事です。あなたはできます努力するこれを使用して双方向レプリケーションを実装しますが、脆弱でエラーが発生しやすくなります。ただし、スイッチを使用してrsync
ターゲットから最新のファイルが削除されるのを防ぎます--update
。
-u, --update
This forces rsync to skip any files which exist on the destination and have a modified time that is newer than the source file. (If an
existing destination file has a modify time equal to the source file's, it will be updated if the sizes are different.)
In the current implementation of --update, a difference of file format between the sender and receiver is always considered to be important
enough for an update, no matter what date is on the objects. In other words, if the source has a directory or a symlink where the destina-
tion has a file, the transfer would occur regardless of the timestamps.