Question Archivage en fonction de la date

Plus d'informations
il y a 15 ans 7 mois #7610 par jordan49
Bonjour,

J'ai actuellement une solution de backup qui me crée un fichier tout les soirs à la date du jour. Les fichiers étant volumineux, j'aimerais seulement garder les 3 plus récents (les 3 derniers jours en gros) mais je n'ai aucune idée de comment faire.

En gros au bout de 3 backups, le nouveau backup du jour prend la place du plus ancien et ainsi de suite.

Merci de votre aide !

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 7 mois #7611 par Laurent Dardenne
Salut,
ces backups sont archivés ou pas ?
C'est à dire, est-ce que tu gardes un historique ou les trois derniers uniquement ?
Comment sont nommés tes fichiers ?
Peut-il y avoir + fichiers de backup pour une même date ?
Le contenu de la propriété CreationTime est-il tjr corrélé au nom du fichier (si celui-ci contient la date) ? i.e. peux-tu créer un backup pour la veille ?

Le traitement peut-il être exécuté de manière irrégulière ?

Il faut déjà connaître les régles de création des backups avant de déterminer comment retrouver les trois derniers.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 7 mois #7612 par jordan49
Les backups ne sont pas archivés, je voudrais juste garder les 3 derniers.

Mes fichiers sont nommés du type \"backup_du_YY_MM-DD\" mais pour des raisons de simplicité je peux seulement mettre \"YY-MM-DD\".

Non uniquement un fichier par date du jour.

Je ne peux pas créer de backup pour la veille, tout mes backups portent automatiquement la date du jour.

Voila :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 7 mois #7616 par Laurent Dardenne
Un jeux de test:
[code:1]
$Nombre=3
#YY-MM-DD
$Files=@(\"09-02-06\",\"09-01-25\",\"10-10-08\",\"10-01-15\",\"09-01-15\",\"10-10-10\",\"09-11-25\",\"01-01-01\",\"06-12-31\"«»)
$Files|Sort -Desc
[/code:1]
Le filtre sur les 3 derniers, on inverse pour récupérer les premiers, selon l'ordre donné, afin de les supprimer :
[code:1]
#Le paramètre -Last attend une valeur positive
$Diff=[Math]::Max(0,$Files.Count-$Nombre)
#6 fichiers à traiter
$Files|Sort-Object -Desc |Select-Object -last $Diff|% {\"Delete $_\"}
[/code:1]
qq tests :
[code:1]
$Diff=[Math]::Max(0,$Files[0..3].Count-$Nombre)
#1 fichier à traiter
$Files[0..3]|Sort-Object -Desc |Select-Object -last $Diff|% {\"Delete $_\"}

$Diff=[Math]::Max(0,$Files[0..2].Count-$Nombre)
#aucun fichier à traiter
$Files[0..2]|Sort-Object -Desc |Select-Object -last $Diff|% {\"Delete $_\"}
[/code:1]
Au final on filtre avec une regex les noms de fichiers concerné :
[code:1]
#Filtre le nom \"YY-MM-DD.bck\"
$Files=Dir *.bck |Where { $_.name -match '^\d{2}-\d{2}-\d{2}\.bck$'}|Sort-Object Name
$Nombre=3
$Diff=[Math]::Max(0,$Files.Count-$Nombre)
$Files|Select-Object -last $Diff|Del -whatif
[/code:1]
Le tri est à vérifier.<br><br>Message édité par: Laurent Dardenne, à: 16/08/10 17:07

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.038 secondes
Propulsé par Kunena