特定の日付以降のフォルダーをrsyncしたいと思います。例えば。 3日前(もちろん、2日前、1日前など)から作成されたフォルダーをrsyncしたいと思います。 findとrsyncを使用する必要があることはわかっていますが、方法がわかりません。何か案が?ありがとう!ドタン。
rsync --progress --files-from=<(find /src_path -mtime -3 -type f -exec basename {} \;) /src_path/ /dst_path
find
を実行し、次にsync
を実行します。
find /path -file -mtime +3 -exec rsync {} destination \;
サーバーからローカルフォルダーにいくつかのフォルダーを同期したいが、常に最後の同期以降に作成されたファイルのみを同期したいと仮定します。次に、次のコマンドが役立つ場合があります。これを、たとえば.bashrcに入れると、新しく作成されたすべてのファイルを同期するエイリアスが定義されます。ファイルはローカルで削除することができ、syncコマンドを再度呼び出したときに再び同期されることはありません。サーバーでの最後の同期後に作成されたファイルのみがローカルフォルダーにコピーされます。
TARGET=/local/target/folder/
SOURCE=/server/folder/
alias sync-since-last="touch $TARGET/last_sync && rsync -ahv --update --files-from=<(ssh [email protected] 'find $SOURCE/source/ -type f -newer $SOURCE/last_sync -exec basename {} \;') [email protected]:$SOURCE/source/ $TARGET && rsync -ahv $TARGET/last_sync [email protected]:$SOURCE"