Question suppression de log

Plus d'informations
il y a 16 ans 11 mois #172 par fabrice winckel
suppression de log a été créé par fabrice winckel
Bonjour,
je cherche à transcrire en powershell une commande unix du type

find . -type f -mtime +30 -exec rm {} \;

Autrement dit comment supprimer les fichiers vieux de 30 jours ou plus ?

Si vous avez une idée, surtout n'hésitez pas à me la communiquer ;)

Merci
Fabrice

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

Plus d'informations
il y a 16 ans 11 mois #174 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:suppression de log
Bonjour Riface et bienvenue sur le forum ;)

Surtout ne prend pas peur de la commande qui va suivre. Je viens de la faire rapidement et il y peut-être (suremment) plus simple mais elle fonctionne:

[code:1] gci -force -recurse | where {!($_.mode -like \"d*\") -and ((get-date).Subtract($_.lastwritetime).days -gt 30)} | remove-item[/code:1]

Petite explication:

gci -force -recurse : comme je ne spécifie pas de chemin, je parcours le répertoire courant.
-recurse : force le parcours de tous les sous dossiers
-force : permet de naviguer aussi dans les repertoires cachés

Ensuite on fait un test sur chaque objet récupéré pour déterminer si c'est un fichier ou un dossier. Et si c'est un fichier, on calcule le nombre de jours écoulés entre aujourd'hui et la date de dernier enregistrement. Si c'est superieur à 30 c'est gagné !

Enfin on passe le tout à la commande remove-item pour supprimer la sélection.

Remarque : Avant d'exécuter brutalement la commande, tu peux utiliser le paramètre -whatif de remove-item. Ainsi PowerShell n'effacera rien mais t'informera de ce qu'il aurait fait si tu n'avais pas spécifié ce paramètre.

[code:1] gci -force -recurse | where {!($_.mode -like \"d*\") -and ((get-date).Subtract($_.lastwritetime).days -gt 30)} | remove-item -whatif[/code:1]

Petit rectificatif, au lieu de :
[code:1]!($_.mode -like \"d*\")[/code:1]

Il est plus \"propre\" d'utiliser la syntaxe suivante:
[code:1]($_.PSIsContainer -eq $false)[/code:1]
En espérant t'avoir aidé...

Arnaud

Message édité par: Arnaud, à: 16/04/07 00:50<br><br>Message édité par: Arnaud, à: 16/04/07 00:52

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 16 ans 11 mois #176 par fabrice winckel
Réponse de fabrice winckel sur le sujet Re:suppression de log
Un grand merci de ton aide
Ce script montre toute la puissance de l'outil
Je sens qu'il va me plaire (je l'ai installé qu'hièr ;) )
A bientôt
Fabrice

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

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