web-dev-qa-db-fra.com

Je veux rsync les fichiers de plus de 2 jours, synchronise tous les fichiers à la place

Je lance un serveur de jeu avec un plugin qui place des sauvegardes de serveur toutes les heures dans/backups. Après 1 jour, le plug-in enregistre 2 sauvegardes/jour et supprime le reste. Je souhaite synchroniser ce répertoire de sauvegarde sur un serveur distant, mais uniquement pour les fichiers de plus de 2 jours, de sorte qu'il ne synchronise pas les fichiers qui seront éventuellement supprimés à la fin de la journée.

Pour ce faire, je lance ceci:

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/ \;

Cela provoque la synchronisation de tous les fichiers dans/backups/avec/server-backups/au lieu de fichiers de plus de 2 jours. Comment pourrais-je résoudre ce problème? Merci pour l'aide!

1
Ayys

Natim a raison en ce que {} doit être utilisé pour transmettre les noms de fichiers à rsync. Il n'est pas nécessaire de passer à scp. Utilisez simplement le {} avec rsync comme dans:

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

Note: j'ai aussi changé

-mtime 2

à

-mtime +2

comme vous déclarez des fichiers de plus de 2 jours. Vous devrez peut-être régler cela en fonction de vos besoins.

3
Kees Beets