Ménage supprimant des fichiers de plus de 30 jours à l'aide d'un script shell


0

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

shell  unix  script 

1
Peut-être pourriez-vous envisager d'utiliser une variable pour le chemin?

1
Pensez à utiliser -prune ou -delete au lieu de -exec rm -rf - C’est généralement une bien meilleure option si votre find le soutient.
GreyCat

Réponses:


3

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.


Ouais ouais ce que je pensais je voulais juste avoir un deuxième avis, merci kent
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.