我想从特定日期开始 rsync 文件夹并继续。例如。我想 rsync 3 天前(当然还有 2 天前、1 天前等)创建的文件夹。我知道我需要使用 find 和 rsync,但我不知道如何使用。有什么想法吗?谢谢!Dotan。
答案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
修改托马斯的回答它根据文件的修改日期与脚本进行同步,以便更加人性化地阅读,并且同步嵌套文件夹。
#!/bin/bash
TARGET=/PATH/TO/TARGET
HOST=username@host
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 小时前。
答案4
对于特定日期,您可以在当前目录中使用以下命令:
for file in $(ls -ltr *.gz | grep 'Apr 17' | awk {'print $9'} | xargs ls)
do rsync -avzh --progress -e ssh $file user@*******:/tmp
done