Bonjour à tous,

Je sèche un peu sur une problématique, je veux créer un script de rotation de log assez spécial: tout d'abord j'ai une arborescence de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    
Dossier_racine : 
      -> Dossier1:
              -> log1
              -> log2
              -> ....
      -> Dossier2:
              -> log1
              -> log2
              -> ....
      -> etc
              -> etc
              -> etc
              -> etc
Dans ces dossiers, j'ai un nombre variable de logs qui sont stockes, ce que je veux c'est ne garder que les 3 derniers logs (jamais moins et je ne fais rien si j'ai moins de 3 logs dans le dossier).

Problème, l'arborescence est très volumineuse (~env 10000 fichiers) et je ne peux pas savoir la date la plus ancienne (comprenez, je ne peux pas supprimer tout les logs > à 30 jours par exemple).

En bref, avez vous une solution pour, dans un dossier, comparez tous les fichiers présents dans celui-ci et ne gardez que les 3 plus récents?

Voici le morceau de code qui récupère l'arbo actuellement, il manque la comparaison justement....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
$LogDir = "mon emplacement de log"

$date = Get-Date
 
$verify_log_dir = Test-Path $LogDir
if ($verify_log_dir) 
 {
   write-host "Succeed"
 }
 else {
   Write-Host "Error:  Log directory $LogDir does not exist."
   exit
 }
 
$logs_root = Get-ChildItem -Directory -recurse $LogDir 
 
if ($logs_root) 
{
   foreach ($file in $logs_root) 
   {
       if ($file.Attributes -eq "Directory")
            {
                $contenu = Get-ChildItem $file.FullName  
                write-host "dossier parent :" $file.name
                if ($contenu.count -gt 3)
                {
                     foreach ($fichier in $contenu)
                     {
                       write-host $fichier.Name
                       //FIXME : LA COMPARAISON
                     }
                 }
             }
    }

}
Merci d'avance et bonne soirée