Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 17h57   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 40
Points : 10
Points : 10
Par défaut aide en SHELL ps -u

bonjour à tous !
je voudrais extraire les informations que fait ressortir ps -u et les utiliser pour formuler une phrase pour chaque ligne , je m'explique :
passer de ça :
Code :
1
2
3
4
5
 
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
aniss        2131     0.0      0.1      21096  3832  pts/0    Ss     15:10       0:00   bash
aniss        3370     0.0      0.0       9732   816   pts/0      T      17:33      0:00   sleep 50
aniss        3509     0.0      0.0      15256  1204 pts/0      R+    17:42      0:00     ps -u
à ça :

Code :
1
2
3
Le processus bash dont le PID=2131 lancer par l'utilisateur est dans l'etat Ss (en execution)
Le processus bash dont le PID=3370 lancer par l'utilisateur est dans l'etat T   (terminer)
Le processus bash dont le PID=3509 lancer par l'utilisateur est dans l'etat R+ (Runnig)
merci à vous !
anissben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 18h12   #2
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
Bonsoir,

Voici une piste:
Citation:
ps -u tarnaud -o pid -o state |awk '{printf "Le processus bash dont le PID=%s lance par l utilisateur est dans l etat %s\n", $1, $2;}'
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2010, 14h39   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 40
Points : 10
Points : 10
Merci d'avoir répondu, mais j'ai encore une erreur :

Code :
chaîne non complétée
Voilà ce que j'ai mis :

Code :
ps -u aniss -o pid -o state |awk '{printf "le processus dont le PID=%s lance par l'user est dans l'etat %s\n", $S1, $S2;}'
anissben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 16h02   #4
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 031
Points : 2 031
Il faut des parenthèses autour des arguments du printf (comme pour n'importe quelle fonction en awk).
matafan est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2010, 16h47   #5
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 40
Points : 10
Points : 10
j'ai fait ça :
Code :
1
2
3
4
5
6
7
 
   ps -o user -o pid -o state -o command| awk '{
                                                 printf "-->utilisateur: %s -->",$1;
                                                 printf "PID: %s -->",$2;
                                                 printf "state: %s -->",$3;
                                                 printf "command: %s\n",$4;
                                                 }';
sa marche et ça donne ce resultat :
Code :
1
2
3
4
5
6
7
 
-->utilisateur: USER -->PID: PID -->state: S -->command: COMMAND
-->utilisateur: aniss -->PID: 1524 -->state: S -->command: bash
-->utilisateur: aniss -->PID: 1819 -->state: T -->command: awk
-->utilisateur: aniss -->PID: 5147 -->state: S -->command: sh
-->utilisateur: aniss -->PID: 5150 -->state: R -->command: ps
-->utilisateur: aniss -->PID: 5151 -->state: S -->command: awk
je voudrai maintenant que la première ligne ne s'affiche pas car comme vous le voyez , elle ne devrai pas etre afficher ..
anissben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 17h04   #6
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Il existe de multiples façons de se débarrasser de la première ligne, avec awk :

becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2010, 17h51   #7
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 059
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 059
Points : 4 111
Points : 4 111
Code :
ps --no-headers -o user,pid,state,command
N_BaH est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/11/2010, 19h08   #8
Candidat au titre de Membre du Club
 
Inscription : avril 2009
Messages : 40
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 40
Points : 10
Points : 10
merci à tous, à la fin , pour faire ressortir le nom de l'utilisateur en premier et ensuite les processus qu'il a lancé on peut donc utiliser le script suivant :

Code :
1
2
3
4
5
6
7
8
9
 
#!/bin/sh
  echo "l'utilisateur $USER lance ces processus :";
 
  ps --no-headers -o pid -o state -o command| awk '{
                                                 printf "-->PID: %s -->",$1;
                                                 printf "STATUE: %s -->",$2;
                                                 printf "COMMANDE: %s\n",$3;
                                                 }';
merci encore !!!
anissben est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h32.


 
 
 
 
Partenaires

Hébergement Web