Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/06/2013, à 14:36

Dznet

Impossible d'enregistrer le résultat d'une commande dans un fichier

Bonjour,

J'ai cette commande et je veux enregistrer le résultat dans un fichier, mais impossible de faire

top | awk '/fire*/' >> /tmp/suiviFireFox.log

Mais rien de s'enregistre dans le fichier /tmp/suiviFireFox.log alors que la commande donne bien un résultat
Le fichier /tmp/suiviFireFox.log existe bien.

top | awk '/fire*/'
19792 toto    20   0  662m 110m  35m S  24,9  1,4   0:00.75 firefox           
19792 toto     20   0  664m 112m  36m S   3,0  1,4   0:00.84 firefox           
19792 toto     20   0  704m 111m  42m S   2,0  1,4   0:00.90 firefox

Merci pour votre aide

Dernière modification par Dznet (Le 11/06/2013, à 14:37)

Hors ligne

#2 Le 11/06/2013, à 15:01

pingouinux

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

Bonjour,
Peut-être un problème de permission. Que donne

ls -l /tmp/suiviFireFox.log

Rectificatif :
Il faut lancer top en batch

top -b | awk '/fire*/' >>/tmp/suiviFireFox.log

Dernière modification par pingouinux (Le 11/06/2013, à 15:07)

Hors ligne

#3 Le 11/06/2013, à 15:47

Dznet

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

Merci pour ta réponse

j'ai les bonne permission

ls -ll suiviFireFox.log
-rw-r--r-- 1 root root 1 juin  11 16:43 suiviFireFox.log

La commande de top en batch ne donne rien aussi

Hors ligne

#4 Le 11/06/2013, à 16:25

pingouinux

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

C'est root qui est le propriétaire du fichier. Es-tu root lorsque tu lances la commande ?

Hors ligne

#5 Le 12/06/2013, à 12:17

Dznet

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

En fait quand je dis que j'ai les bonne permission, c'est que j'utilise bien le bon propriétaire du fichier, donc root

Hors ligne

#6 Le 12/06/2013, à 12:50

akaoni

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

top | awk '/fire*/'  2>&1  >> /tmp/suiviFireFox.log
Ca doit partir sur stderr.

Hors ligne

#7 Le 12/06/2013, à 13:56

pingouinux

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

@akaoni : La sortie est bien sur stdout

Essayer :

top | stdbuf -o0 awk '/fire*/' >> /tmp/suiviFireFox.log

ou

top -b | stdbuf -o0 awk '/fire*/' >> /tmp/suiviFireFox.log

Dernière modification par pingouinux (Le 12/06/2013, à 13:56)

Hors ligne

#8 Le 12/06/2013, à 14:28

Michel SIMIAN

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

Bonjour,

Ce n'est pas un problème de droits ou autre.
C'est que top, par défaut, écrit toutes les secondes. Or, le système bufferise et si tu n'attends pas assez, et coupe par CTRL C, le fichier ne contient pas les données non encore écrites.

J'ai essayé ta commande avec

top -d 0.10 | awk '/fire*/' >>/tmp/bidon

et là,il suffit d'attendre 4  à 5 secondes pour avoir une cinquantaine de lignes...

Dernière modification par Michel SIMIAN (Le 12/06/2013, à 14:28)

Hors ligne

#9 Le 12/06/2013, à 16:44

pingouinux

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

@Michel SIMIAN : Justement, la commande que j'indique en #7 a pour but de na pas bufferiser les sorties. Voir man stdbuf.

Hors ligne

#10 Le 14/06/2013, à 11:03

claudius01

Re : Impossible d'enregistrer le résultat d'une commande dans un fichier

Bonjour,

Sinon et sauf erreur de ma part, à la place d'utiliser top, il est possible d'utiliser la commande interne ps comme :

$ ps -elf

qui fournit les mêmes informations (ou presque) que top hormis le fait qu'il faut la relancer pour les rafraîchir...


Cordialement, A+
--
Claudius

Dernière modification par claudius01 (Le 14/06/2013, à 15:33)

Hors ligne