IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

vider une liste de fichiers log


Sujet :

Administration système

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut vider une liste de fichiers log
    bonjour,

    je cherche à faire ceci et je cale !

    Vider (avec par exemple echo > fichier.log) , une liste de fichiers *.log .

    J'ai fait plusieurs tentatives avec find ... | xargs ... .

    Je ne connais pas la liste des fichiers à l'avance. L'idée est de vider par exemple tous les fichiers log vieux d'une semaine.

    Mais sans succès.

    Quelqu'un a-t-il une idée ? Merci d'avance

    Philippe

  2. #2
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Quels paramètres as-tu utilisé pour find ??
    Avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.log -mtime +7
    ça devrait le faire (cf. man find)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut utiliser echo > dans le find ...
    je fais ceci

    find / -name "*.log" -mtime -7 -print0 | xargs 0 ???? mais après je ne sais pas enchaîner avec un "echo > ..."

  4. #4
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 750
    Points
    750
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name "*.log" -mtime -7 -exec rm -f {} \;
    Pour carrément effacer le fichier (mea culpa pour l +7 au lieu du -7)
    C'est vrai que pour les redirections dans un find sont plutôt pénibles.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut vider le fichier et non pas le supprimer
    Merci pour votre réponse, mais justement je souhaite remplacer la commande de suppression par une commande de "remise à vide" du fichier.

    En effet find .... -exec rm -f {}\; permet de supprimer tous les fichiers ...

    Mais mes fichiers logs ne doivent pas être supprimés car ils sont utilisés par des processus ...

    Il s'agit donc de remplacer le fameux -exec rm -f {}\; par quelque chose comme echo > ... .

    Avez-vous une idée ?

    Philippe

  6. #6
    Membre habitué Avatar de lu6fer
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 175
    Points
    175
    "Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
    Linus TORVALD

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    j'ai testé mais ...

    find . -name "AK*.log" -exec echo -n "" > {}
    find: Paramètre manquant pour `-exec'


    Je précise que je suis un utilisateur occasionnel d'unix

  8. #8
    Membre habitué Avatar de lu6fer
    Inscrit en
    Avril 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 141
    Points : 175
    Points
    175
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name "*.log"-exec echo -n "" > {} \;
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in ./*.log
    do
       echo -n "" > $i
    done
    apres pour la gestion des log de plus de 7 jours, soit tu utilises -mtime -7 avec find, la il te trouvera tout les log de 7 jour et plus et mettra la chaine de caractere vide dans le log, soit tu utilise un des 2 solutions du dessus coupler a une crontab qui tourne 1 fois par semaine.
    "Le logiciel c'est comme le sexe, c'est meilleur quand c'est gratuit"
    Linus TORVALD

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Points : 9
    Points
    9
    Par défaut une possibilité ...
    Merci,

    mais le find dans mon environnement (redhat) ne fonctionne pas.

    Suite à cette discussion, j'ai l'idée de faire ceci :

    find <REPERTOIRE> -name "*.log" -mtime -7 -print > /tmp/A.txt
    while read i
    do
    echo > $i
    done < /tmp/A.txt

    faut voir la doc sur le paramètre -mtime ...

    Cela fonctionne dans mon environnement.

    Merci à tous.

    Voilà

    Philippe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2006, 20h14
  2. [WebService]Ou trouver une liste de fichier WSDL?
    Par javazer dans le forum Services Web
    Réponses: 6
    Dernier message: 07/04/2006, 14h02
  3. [JSP] Trier par date une liste de fichier en JSP
    Par Total dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 21/02/2006, 15h38
  4. [VB]Récupérer une liste de fichiers
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/02/2006, 16h03
  5. Réponses: 10
    Dernier message: 30/01/2005, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo