Rechercher : dans
Par :

Script bash process by user

Dernière réponse le 28 oct 2007 à 22:41:04 kamax, le 28 oct 2007 à 18:54:56 
 Signaler ce message aux modérateurs

Bonjour, je voudrai faire un script en bash qui m'affiche pour chaque utilisateur la liste de leur processus actifs.
Pouvez-vous m'expliquer le problème que je rencontre avec sed et awk? Ainsi que résoudre le problème de l'affichage en utilisant "header" comme nom de champ

voici mon script :

#!/bin/bash
connected_people=`who | cut -f1 -d' ' | uniq`
header=`ps|head -1`

for name in $connected_people
do
#nom=`tr "." " " $name` <= quel est le problème ici?
echo "----------------------------------------------"
nom=`sed '$name s/*[.]*\./*[ ]*/'` <= erreur
echo $nom
proc=`ps U $name`
process=`awk -F" " {print $1 $2 $4 $5} < $proc` <= erreur (je souhaite n'afficher que les champ 1,2,4,5)
echo $header
echo $process
echo "----------------------------------------------"
done

Merci pour votre aide.

Configuration: Windows XP
Opera 9.23

Meilleures réponses pour « script bash process by user » dans :
Bash - Les paramètres VoirIntroduction Les paramètres positionnels Exemple 1 Les paramètres spéciaux Exemple 2 Initialiser des paramètres - La commande "set" - Exemples - La commande "shift" - Exemple 3 Introduction Il est possible de fournir à un script,...
Coloration du shell (bash) VoirPourquoi le faire? Quelles informations peuvent être transmises par les couleurs? Les techniques Technique de tput Pourquoi le faire? En personnalisant la couleur des caractères de l'invite (ou du shell), vous la rendez plus lisible. Si...

1

jipicy, le 28 oct 2007 à 19:56:12

Salut,

#nom=`tr "." " " $name` <= quel est le problème ici?

nom=$( echo ${name} | tr "." " ")

nom=`sed '$name s/*[.]*\./*[ ]*/'` <= erreur
nom=$(echo ${name} | sed 's/\./ /')

process=`awk -F" " {print $1 $2 $4 $5} < $proc`
process=$(awk -F" " '{ print $1,$2,$4,$5 }' < <(ps U ${name}))
Essaye ça :
#!/bin/bash
connected_people=$(who | cut -f1 -d' ' | sort -u)


for name in ${connected_people}
do

echo "----------------------------------------------"

echo ${name/./ }
echo
echo $(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))

echo "----------------------------------------------"
done
;-))

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

kamax, le 28 oct 2007 à 20:36:07

Merci pour les explications. Cependant, j'ai encore quelques erreurs. Voici les messages sur le prompt :

process_users: command substitution: line 10: syntax error near unexpected token `('
process_users: command substitution: line 10: `awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' <<(ps U ${name})'

Répondre à kamax

3

jipicy, le 28 oct 2007 à 20:45:07

J'ai pas d'erreur chez moi, par contre j'ai oublié de quotter l'expression :

echo "$(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))"
T'as bien mis les 2 parenthèses fermantes en fin d'expression ?
Essaye l'expression dans un shell interactif. Crées une variable :
name=$USER
et lances la commande :
echo "$(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))"
et dis-moi si ça marche...

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

kamax, le 28 oct 2007 à 21:41:43

J'ai du m'absenter, désolé. Oui en effet, dans le prompt ça fonctionne, mais dans le script -certainement un problème dans la boucle- ça ne fonctionne pas et ça me remet encore la même erreur :

process_users: command substitution: line 10: syntax error near unexpected token `('
process_users: command substitution: line 10: `awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' <<(ps U ${name})'

Répondre à kamax

5

jipicy, le 28 oct 2007 à 22:23:10

Affiches ton script en entier ici s'il te plaît.
Sinon, lances-le aussi en mode débogage, rajoute "set -xv" aprés la ligne shebang :

#! /bin/bash
set -xv
tu auras déjà quelques indications sûrement.

Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

6

 lami20j, le 28 oct 2007 à 22:41:04

Salut,

pourquoi pas

au lieu de

lami20j@debian:~/trash$ ps U lami20j
  PID TTY      STAT   TIME COMMAND
 2681 ?        Ss     0:01 x-session-manager
 2724 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
 2727 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
 2728 ?        Ss     0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
 2756 ?        S      0:00 /usr/lib/libgconf2-4/gconfd-2 5
 2759 ?        S      0:00 /usr/bin/gnome-keyring-daemon
 2761 ?        Ss     0:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=18
 2763 ?        Sl     0:09 /usr/lib/control-center/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=26
 2773 ?        Ss     0:49 /usr/bin/metacity --sm-client-id=default0
 2781 ?        Ssl    0:08 gnome-panel --sm-client-id default1
 2783 ?        Ssl    0:10 nautilus --no-default-window --sm-client-id default2
 2787 ?        Ss     0:01 vino-session --sm-client-id default5
 2788 ?        Ss     0:00 gnome-volume-manager --sm-client-id default4
 2790 ?        Ss     0:00 bluetooth-applet
 2792 ?        Ss     0:46 /usr/bin/konsole
 2796 ?        Sl     0:01 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oaf-ior-fd=32
 2800 ?        Ss     0:05 update-notifier
 2812 ?        S      0:05 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=34
 2817 ?        S      0:00 /usr/lib/nautilus-cd-burner/mapping-daemon
 2825 ?        Ss     0:00 kdeinit Running...
 2831 ?        S      0:00 dcopserver [kdeinit] --nosid --suicide
 2836 ?        S      0:00 klauncher [kdeinit]
 2838 ?        S      0:05 kded [kdeinit]
 2845 ?        S      0:00 /usr/lib/gnome-panel/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Facto­ry --oaf-ior-fd=38
 2847 ?        S      0:06 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=39
 2849 ?        S      0:04 /usr/lib/gnome-applets/mixer_applet2 --oaf-activate-iid=OAFIID:GNOME_MixerApplet_Factory --oaf-ior-fd=40
 2852 pts/0    Ss     0:00 /bin/bash
 2872 ?        Ss     0:14 gnome-screensaver
 2882 pts/0    Sl    52:46 /usr/lib/iceweasel/firefox-bin -a firefox
 3049 ?        S      0:05 /usr/lib/notification-daemon/notification-daemon
 3216 ?        S      0:11 knotify [kdeinit]
 3219 ?        S      0:02 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f
 4683 pts/0    SLl   60:18 kaffeine
 4686 ?        S      0:00 kio_file [kdeinit] file /tmp/ksocket-lami20j/klauncherDFmrjb.slave-socket /tmp/ksocket-lami20j/kaffeineKfxC2b.slave-socket
 4896 pts/1    Ss     0:00 /bin/bash
 5201 pts/0    S+     0:00 vi ccm.pl
 5601 pts/1    S      0:59 scite
 5946 pts/1    R+     0:00 ps U lami20j
tu n'utilise pas
lami20j@debian:~/trash$ ps -o pid,tty,time,cmd -U lami20j
  PID TT           TIME CMD
 2681 ?        00:00:01 x-session-manager
 2724 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
 2727 ?        00:00:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
 2728 ?        00:00:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
 2756 ?        00:00:00 /usr/lib/libgconf2-4/gconfd-2 5
 2759 ?        00:00:00 /usr/bin/gnome-keyring-daemon
 2761 ?        00:00:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=18
 2763 ?        00:00:09 /usr/lib/control-center/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=26
 2773 ?        00:00:49 /usr/bin/metacity --sm-client-id=default0
 2781 ?        00:00:08 gnome-panel --sm-client-id default1
 2783 ?        00:00:10 nautilus --no-default-window --sm-client-id default2
 2787 ?        00:00:01 vino-session --sm-client-id default5
 2788 ?        00:00:00 gnome-volume-manager --sm-client-id default4
 2790 ?        00:00:00 bluetooth-applet
 2792 ?        00:00:46 /usr/bin/konsole
 2796 ?        00:00:01 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oaf-ior-fd=32
 2800 ?        00:00:05 update-notifier
 2812 ?        00:00:05 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=34
 2817 ?        00:00:00 /usr/lib/nautilus-cd-burner/mapping-daemon
 2825 ?        00:00:00 kdeinit Running...
 2831 ?        00:00:00 dcopserver [kdeinit] --nosid --suicide
 2836 ?        00:00:00 klauncher [kdeinit]
 2838 ?        00:00:05 kded [kdeinit]
 2845 ?        00:00:00 /usr/lib/gnome-panel/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Facto­ry --oaf-ior-fd=38
 2847 ?        00:00:06 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=39
 2849 ?        00:00:04 /usr/lib/gnome-applets/mixer_applet2 --oaf-activate-iid=OAFIID:GNOME_MixerApplet_Factory --oaf-ior-fd=40
 2852 pts/0    00:00:00 /bin/bash
 2872 ?        00:00:14 gnome-screensaver
 2882 pts/0    00:52:50 /usr/lib/iceweasel/firefox-bin -a firefox
 3049 ?        00:00:05 /usr/lib/notification-daemon/notification-daemon
 3216 ?        00:00:11 knotify [kdeinit]
 3219 ?        00:00:02 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f
 4683 pts/0    01:00:23 kaffeine
 4686 ?        00:00:00 kio_file [kdeinit] file /tmp/ksocket-lami20j/klauncherDFmrjb.slave-socket /tmp/ksocket-lami20j/kaffeineKfxC2b.slave-socket
 4896 pts/1    00:00:00 /bin/bash
 5201 pts/0    00:00:00 vi ccm.pl
 5601 pts/1    00:00:59 scite
 5948 pts/1    00:00:00 ps -o pid,tty,time,cmd -U lami20j
lami20j@debian:~/trash$ ps -o pid,tty,time,comm -U lami20j
  PID TT           TIME COMMAND
 2681 ?        00:00:01 x-session-manag
 2724 ?        00:00:00 ssh-agent
 2727 ?        00:00:00 dbus-launch
 2728 ?        00:00:00 dbus-daemon
 2756 ?        00:00:00 gconfd-2
 2759 ?        00:00:00 gnome-keyring-d
 2761 ?        00:00:00 bonobo-activati
 2763 ?        00:00:09 gnome-settings-
 2773 ?        00:00:49 metacity
 2781 ?        00:00:08 gnome-panel
 2783 ?        00:00:10 nautilus
 2787 ?        00:00:01 vino-session
 2788 ?        00:00:00 gnome-volume-ma
 2790 ?        00:00:00 bluetooth-apple
 2792 ?        00:00:47 konsole
 2796 ?        00:00:01 gnome-vfs-daemo
 2800 ?        00:00:05 update-notifier
 2812 ?        00:00:05 clock-applet
 2817 ?        00:00:00 mapping-daemon
 2825 ?        00:00:00 kdeinit
 2831 ?        00:00:00 dcopserver
 2836 ?        00:00:00 klauncher
 2838 ?        00:00:05 kded
 2845 ?        00:00:00 notification-ar
 2847 ?        00:00:06 wnck-applet
 2849 ?        00:00:04 mixer_applet2
 2852 pts/0    00:00:00 bash
 2872 ?        00:00:14 gnome-screensav
 2882 pts/0    00:52:54 firefox-bin
 3049 ?        00:00:05 notification-da
 3216 ?        00:00:11 knotify
 3219 ?        00:00:02 artsd
 4683 pts/0    01:00:29 kaffeine
 4686 ?        00:00:00 kio_file
 4896 pts/1    00:00:00 bash
 5201 pts/0    00:00:00 vi
 5601 pts/1    00:00:59 scite
 5949 pts/1    00:00:00 ps

lami20j

Répondre à lami20j