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


la source
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.

Kent
la source
Ouais ouais ce que je pensais je voulais juste avoir un deuxième avis, merci kent