Script bash process by user

Résolu/Fermé
kamax - 28 oct. 2007 à 18:54
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 28 oct. 2007 à 22:41
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.

6 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
28 oct. 2007 à 19:56
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
;-))
0
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})'
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
28 oct. 2007 à 20:45
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...
0
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})'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
28 oct. 2007 à 22:23
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.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
28 oct. 2007 à 22:41
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_Factory --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_Factory --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
0