Supprimer backup sauf certains jours

Résolu
Salut à tous!
J'utilise un serveur de fichier Freenas et chaque jour des scripts copie des sauvegardes de différents serveurs web sur mon serveur FreeNAS.

Mais je veux faire un autre script qui permet d'effacer les sauvegardes de plus de 2 jours, sauf les 3 derniers dimanches.
Pour l'instant, j'ai ceci:
find /mnt/raid/Sauvegarde/Base-Team/www -name "www_*.tar.gz" -mtime +2 -exec rm {} \;
Mais je ne sais pas comment garder les 3 derniers dimanches ...

Quelqu'un peut m'aider?
Merci!

3 réponses

  1. Modérateur
    Salut,

    Il ressemble à quoi le nom complet de tes sauvegardes ?
    En se basant que sur la date, ça me semble compromis ton histoire ;-\

    A mon avis, il faudrait que dans le nom de tes archives apparaisse clairement le jour (dimanche/sunday ou dim/sun) pour éventuellement dans un premier temps faire une exclusion des noms contenant "dim" et ensuite n'en conserver que trois...
    0
    1. le nom complet ressemble à ceci :
      www_04-08-10.tar.gz

      Ton idée me semble pas mal mais comment la réaliser concrètement ?
      0
      1. Modérateur
        Re-

        En partant sur un nom d'archive modifié comme ceci "www_dim-04-08-10.tar.gz", voilà ce que tu pourrais faire pour dans un premier temps en effaçant que les archives de la semaine (sauf du dimanche) :

        jp@MDK:~/tmpfs ssh$ ls -1
        www_dim-04-08-10.tar.gz
        www_dim-05-08-10.tar.gz
        www_jeu-04-08-10.tar.gz
        www_jeu-05-08-10.tar.gz
        www_lun-04-08-10.tar.gz
        www_lun-05-08-10.tar.gz
        www_mar-04-08-10.tar.gz
        www_mar-05-08-10.tar.gz
        www_mer-04-08-10.tar.gz
        www_mer-05-08-10.tar.gz
        www_sam-04-08-10.tar.gz
        www_sam-05-08-10.tar.gz
        www_ven-04-08-10.tar.gz
        www_ven-05-08-10.tar.gz
        
        jp@MDK:~/tmpfs ssh$ find . \( -name "*dim*" -prune \) -o \( -type f -print \)
        ./www_sam-05-08-10.tar.gz
        ./www_ven-05-08-10.tar.gz
        ./www_jeu-05-08-10.tar.gz
        ./www_mer-05-08-10.tar.gz
        ./www_mar-05-08-10.tar.gz
        ./www_lun-05-08-10.tar.gz
        ./www_sam-04-08-10.tar.gz
        ./www_ven-04-08-10.tar.gz
        ./www_jeu-04-08-10.tar.gz
        ./www_mer-04-08-10.tar.gz
        ./www_mar-04-08-10.tar.gz
        ./www_lun-04-08-10.tar.gz
        
        jp@MDK:~/tmpfs ssh$
        

        Après quoi tu fais une recherche sur les "dim" et tu ne gardes que les trois derniers...
        0
        1. Merci de ton aide !
          Par contre j'ai quelques questions :
          -Pourquoi quand tu fais un ls-l tu a des doublons et des jours pas forcément cohérent ? C'est juste pour me montrer un exemple ?

          - Ensuite comment garder les 3 derniers "dim" ?

          Encore merci de ton aide, je vais essayer de m'en sortir avec ta méthode :)
          0
        2. Modérateur
          -Pourquoi quand tu fais un ls-l tu a des doublons et des jours pas forcément cohérent ? C'est juste pour me montrer un exemple ?
          C'est un exemple, j'ai créé les fichiers à la va-vite, juste pour argumenter et tester ma réponse...
          De plus c'est un "UN" et non pas un "ELLE" minuscule ;-\

          - Ensuite comment garder les 3 derniers "dim" ?
          Un truc du genre devrait t'afficher ce qu'il faut (ATTENTION : c'est un "UN" et non pas un "ELLE" minuscule) :

          ls -lrt *dim* | tail +4
          0
        3. Merci pour ton aide, j'ai pas fait exactement comme ca mais je m'en suis inspiré ^^
          0
        4. Modérateur
          Ce serait sympa de nous afficher ce que tu as fait alors... ;-\

          Merci d'avance ;-)
          0
        5. J'ai fait ceci :
          find /mnt/raid/Sauvegarde/Cyberviseur -name "www_dim-*.tar.gz" -mtime +21 -exec rm {} \;

          Je supprime tout les www-lun , www-mar, www-mer ...etc au bout de 2 jours, sauf le www-dim qui lui est enlevé au bout de 21 jours.
          0