|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 18 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : mai 2002 Messages : 504 ![]() |
Quels paramètres as-tu utilisé pour find ??
Avec un ça devrait le faire (cf. man find)
__________________
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!] |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 18 ![]() |
je fais ceci
find / -name "*.log" -mtime -7 -print0 | xargs 0 ???? mais après je ne sais pas enchaîner avec un "echo > ..." |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() ![]() Inscription : mai 2002 Messages : 504 ![]() |
Code :
find . -name "*.log" -mtime -7 -exec rm -f {} \; C'est vrai que pour les redirections dans un find sont plutôt pénibles.
__________________
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!] |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 18 ![]() |
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 |
|
|
00
|
|
|
#6 |
|
Membre actif
![]() Inscription : avril 2008 Messages : 141 ![]() |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 18 ![]() |
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 |
|
|
00
|
|
|
#8 | ||
|
Membre actif
![]() Inscription : avril 2008 Messages : 141 ![]() |
Code :
find ./ -name "*.log"-exec echo -n "" > {} \; Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2008 Messages : 18 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com