rsyncは私にとって非常に明確ですが、まだ把握できない特定のタスクがあります。
ソースとターゲットを1:1に同期したいです。私はこの--delete
オプションがそれを扱うと信じています。したがって、ソースにファイルを追加すると、rsync はそのファイルをターゲットに追加します。ソースからファイルが削除されると、rsync はターゲットからもそのファイルを削除します。さて、ターゲットファイルを削除する代わりにArchiveフォルダに移動したいと思います。
ソースから欠落しているファイルのリストをrsyncに要求できますか?では、リスト内のアイテムをターゲットからライブラリに移動できますか?
動作するソリューションがありますが、ファイル転送に関連しており、rsyncのバージョンによって異なる可能性があるrsyncコンソールの出力に依存しているため、不安定です。
rsync -avun --delete src/ tgt/ |grep "deleting" | cut -c10- > transfer.txt
rsync --files-from=transfer.txt --remove-source-files tgt/ archive/
rm transfer.txt
rsync -ravu --delete src/ tgt/
より安定した方法でこれを行う方法についてのアイデアはありますか?
答え1
この--backup --backup-dir=/some/backup/directory
オプションは、ターゲットから変更または削除されたファイルをバックアップします。
rsync -auv --delete --backup --backup-dir=/path/to/backupdir src/ tgt/
パスは--backup-dir
ターゲットに基づいているため、内部に配置したくない場合はtgt/
絶対パスを指定することをお勧めします。
答え2
オプションオプションがあります--list-only
。