Как rsync файлы старше x мин на Linux

Вот что у меня сейчас:

rsync --remove-source-files -vr user@server:/foo/bar/in/ /some/local/path

Есть ли способ, которым я могу дать команду rsync получать только файлы, которые старше x мин / час, с удаленного хоста?

Вот некоторый контекст относительно того, почему. Кажется, что удаленный сервер, который мы не контролируем, находится в процессе написания большого файла, когда начинается наше задание rsync. Вместо ожидаемого файла размером 200 МБ мы получаем что-то вроде 40 МБ и поврежденный файл. С нашей стороны, я решил, что мы сможем контролировать это, если будем брать только файлы, которые обязательно будут закончены.

2 ответа

Вы должны быть в состоянии использовать find искать файлы старше x минут и передавать результаты в rsync.

find /src/dir/ -cmin +30 -printf %P\\0 \ | rsync --files-from=- --from0 /src/dir/ /dst/dir/

Источник

#Оба тома являются локальными, все файлы созданы 2 месяца назад (86400 мин)

rsync -av --progress --files-from=<(find /Volumes/Stream/Video/ -cmin +86400) ./ /Volumes/Feb2021/

#Если хочешь пойти позже

rsync -av --progress --files-from=<(find /Volumes/Stream/Video/ -newermt 20210301) ./ /Volumes/Overflow

Другие вопросы по тегам