web-dev-qa-db-ja.com

特定の日付以降のファイル/フォルダーをrsyncする方法は?

特定の日付以降のフォルダーをrsyncしたいと思います。例えば。 3日前(もちろん、2日前、1日前など)から作成されたフォルダーをrsyncしたいと思います。 findとrsyncを使用する必要があることはわかっていますが、方法がわかりません。何か案が?ありがとう!ドタン。

6
edotan
rsync --progress --files-from=<(find /src_path -mtime -3 -type f -exec basename {} \;) /src_path/ /dst_path
10
fredrik

findを実行し、次にsyncを実行します。

find /path -file -mtime +3 -exec rsync {} destination \;
7
colealtdelete

サーバーからローカルフォルダーにいくつかのフォルダーを同期したいが、常に最後の同期以降に作成されたファイルのみを同期したいと仮定します。次に、次のコマンドが役立つ場合があります。これを、たとえば.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"
1
Thomas