Supprimer backup sauf certains jours

Résolu
kevin54 -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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!
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
kevin54
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
kevin54
 
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
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
-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
kevin54
 
Merci pour ton aide, j'ai pas fait exactement comme ca mais je m'en suis inspiré ^^
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Ce serait sympa de nous afficher ce que tu as fait alors... ;-\

Merci d'avance ;-)
0
kevin54
 
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