Как 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