Donc, je dois un peu de gestion pour les anciennes sauvegardes et avoir le code suivant sur sh:
find /home/backups -mtime +30 -type f -exec rm -rf {} \;
Cela fonctionne très bien si vous connaissez l'emplacement / chemin, donc si le chemin est différent sur une autre machine, comment puis-je modifier la commande pour qu'elle fonctionne sur toutes les machines?
Si j'utilise la commande ci-dessous, tous les fichiers supprimés datent de 30 jours mais je ne cherche qu'à nettoyer ces fichiers uniques de sauvegarde uniquement:
find . -mtime +3 -exec rm {} ';'
Merci
-prune
ou-delete
au lieu de-exec rm -rf
- C’est généralement une bien meilleure option si votrefind
le soutient.Réponses:
Je ne sais pas comment tu exécuterais la commande sur tout machines, automatiquement via ssh? ou manuellement?
de toute façon, si vous voulez économiser l’effort de taper chemin, vous pouvez considérer que sur chaque machine, créez une variable portant le même nom, par exemple. BACKUP_DIR, il enregistre le chemin dont vous avez besoin pour effectuer le travail de nettoyage.
Ensuite, dans votre commande find, ne codez aucun chemin, mais utilisez la variable.
si vous le faites automatiquement via ssh, vous connaissez le chemin lorsque vous établissez la connexion. puis ajoutez simplement le chemin dans votre recherche.
la source