Я хочу rsync файлы старше 2 дней, вместо этого синхронизирует все файлы

Я запускаю игровой сервер с плагином, который помещает ежечасные резервные копии сервера в /backups. Через 1 день плагин сохраняет 2 резервных копии в день и удаляет остальные. Я хочу синхронизировать этот каталог резервного копирования с удаленным сервером, но только для файлов старше 2 дней, чтобы он не синхронизировал файлы, которые в конечном итоге будут удалены к концу дня.

Для этого я запускаю это:

find /path/backups/ -type f -mtime 2 -exec rsync -vPhd -e "ssh -p 512" /path/backups/ --delete --ignore-existing me@host:/remote/path/server-backups/ \;

Это приводит к синхронизации всех файлов в / backups / с /server-backups/ вместо файлов старше 2 дней. Как бы я решил эту проблему? Спасибо за помощь!

1 ответ

Решение

Натим прав в том, что {} необходимо использовать для передачи имен файлов в rsync. Нет необходимости переключаться на scp. Просто используйте {} с rsync как в:

find /path/backups/ -type f -mtime +2 -exec rsync -vPhd -e "ssh -p 512" {} --delete --ignore-existing me@host:/remote/path/server-backups/ \;

Примечание: я тоже изменился

-mtime 2

в

-mtime +2

как вы заявляете файлы старше 2 дней. Возможно, вам придется настроить это в соответствии с вашими потребностями.

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