Supprimer les fichiers de sauvegarde - n'en garder qu'un par jour

0

J'ai ce script pour supprimer les anciens fichiers de sauvegarde de plus de 15 jours

"find $path -type f -mmin +".(60 * 24 * $expire_days)." -name '*.tar.*' -delete"

Après cela, je souhaite ne conserver qu'un fichier de sauvegarde par jour après 10 jours. Comment faire cela? Le processus de sauvegarde s'exécute plusieurs fois par jour et crée 4 à 5 fichiers par jour.

clarkk
la source

Réponses:

0

Eh bien, vous devez écrire un autre script qui,

  1. Enumère tous les fichiers, et pour chaque fichier, leur dernier chemin est collecté ( mtime).
  2. À partir de chacun mtime, il extrait la partie date et ignore la partie heure.
  3. Il analyse ensuite le jeu de données résultant pour identifier les groupes d'entrées ayant la même date. pour chacun de ces groupes, vous marquez toutes les entrées sauf une (une seule).
  4. Parcourez toutes les entrées marquées et supprimez les fichiers correspondants.

Comme vous pouvez le constater, il s’agit d’une tâche de programmation (relativement simple). Je choisirais probablement Python ou Tcl, car un simple script shell ne suffira probablement pas.

  • Si vous rencontrez un problème concret avec le plan que j'ai présenté, envisagez de le publier sur SE.stackexchange.com .
  • Si vous rencontrez un problème concret avec un algorithme particulier lors de l’implémentation de votre solution en utilisant un environnement d’exécution / une langue particuliers, envisagez de le publier sur un SO .
Kostix
la source