GNU/Linux >> Linux の 問題 >  >> Linux

特定の日付からファイル/フォルダーを再同期する方法は?

解決策 1:

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

解決策 2:

あなたは find をしたいと思うでしょう その後 sync

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

解決策 3:

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

解決策 4:

ファイルの変更日に基づいて同期する Thomas からの回答をスクリプトに変更し、人間が読みやすくし、ネストされたフォルダーも同期するようにします。

#!/bin/bash

TARGET=/PATH/TO/TARGET
[email protected]
SOURCE=/ABSOLUTE/SOURCE/PATH/ON/HOST

touch $TARGET/last_sync

rsync \
    -ahrv \
    --update \
    --files-from=<(ssh $HOST "find $SOURCE -type f -newer $SOURCE/last_sync -exec realpath --relative-to=$SOURCE '{}' \;") \
    $HOST:$SOURCE \
    $TARGET

rsync -ahv $TARGET/last_sync $HOST:$SOURCE

init の場合、おそらく last_sync を作成する必要があります リモートでファイルを作成するには、次のコマンドが役立ちます

touch -d "2 hours ago" last_sync

last_sync というファイルを作成します 作成日は 2 時間前です。


Linux
  1. Rsyncを選択的に消音する方法は?

  2. 別のサーバーとの間でファイルやフォルダーをコピーする方法を学ぶ

  3. Centosでファイル/フォルダを圧縮/解凍するにはどうすればよいですか?

  1. 特定のファイルを除外しながらrsyncを使用してディレクトリを再帰的にコピーする方法

  2. Linuxで特定の日付より古いファイルを削除するにはどうすればよいですか?

  3. Linux マージ フォルダ:rsync?

  1. bash で 2 つのローカル フォルダーを同期する

  2. プロセスがファイルを書き込めないようにする方法

  3. ファイルのテキストリストからの Linux (mv または cp) 固有のファイル?