Я хочу 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 дней. Возможно, вам придется настроить это в соответствии с вашими потребностями.