вывод ps -ef
root 24742 1066 0 Jul 29 ? 0:00 /sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
bin 17326 17322 0 Jul 26 ? 0:00 /opt/OV/httpd//bin/httpd -k start
root 24814 1066 0 Jul 29 ? 0:00 /sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
root 24785 1066 0 Jul 29 ? 0:00 /sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
root 24423 1066 0 Jul 29 ? 0:00 /sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
oracle 2134 1 0 Oct 21 ? 13:55 /oracle/product/current/bin/tnslsnr LISTENER -inherit
root 985 978 0 Jul 29 ? 0:41 /opt/OV/bin/OpC/opcuiwww
root 24821 24814 0 Jul 29 ? 0:11 /opt/OV/bin/OpC/opcuiwww
root 21703 21702 1 13:20:00 ? 0:00 /opt/wbem/bin/cimprovider -l -s
root 21659 1848 0 13:20:00 ? 0:00 sh -c /etc/opt/resmon/lbin/mon_EMSHAProvider_state.sh
root 21660 1848 1 13:20:00 ? 0:00 sh -c /opt/sfm/bin/restart_sfm.sh
Соответственно надо вытащить отсюда все процессы рута с путями и аргументами.
Может кто предложит красивое решение? :]
PS В итоге недо получить вот это
/sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
/sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
/sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
/sbin/sh /opt/OV/bin/OpC/opcuiwww.sh
/opt/OV/bin/OpC/opcuiwww
/opt/OV/bin/OpC/opcuiwww
/opt/wbem/bin/cimprovider -l -s
sh -c /etc/opt/resmon/lbin/mon_EMSHAProvider_state.sh
sh -c /opt/sfm/bin/restart_sfm.sh
Еще пара ограничений
1) только posix
2) операционки разные(hpus, aix, solaris, linux'ы), соответственно абсолютная позиция первого нужного символа может меняться(предполагаю)
ps ax -u root -U root -o args
так не?
Через awk попробуй так
ps -ef|grep root|grep -v grep |awk '{ for(i=8;i<=NF;i++) printf("%s ",$i); printf("\n") }'
rjhdby, -o есть в POSIX, я недавно пересматривал IEEE Std 1003.1
Не спорю, но особенности реализации ps на hpux требуют, к сожалению, выставления окружения, чтоб оно заработало. :[
Сам пока вот так накракозябил
ps -fu $USER | sed 's/ [A-Za-z][A-Za-z][A-Za-z][ ][ 0-9][0-9] / /' | sed 's/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] / /' | tr -s "[:space:]" | cut -f8- -d" "
Но боюсь, что один чортъ упрусь в нестандартизованный вывод ps'а
У меня в чпуксе крайне куций sed :dash:
\d \s он тупо не понимает. А на + реагирует неадекватно.
ну замени + на *, в данном конкретном случае разницы не будет. вместо \s напиши пробел.
Ну в общем действительно, можно зацепиться за " [0-9][0-9]*:[0-9][0-9] "
ps -fu $USER | sed 's/.* [0-9][0-9]*:[0-9][0-9] \(.*\)/\1/'
работает
rjhdby, криво вывело.
вот кусок
? 00:00:00 [pdflush]
? 00:00:01 [pdflush]
root 13212 1 0 Apr20 tty1 00:00:00 /sbin/getty 38400 tty1
pts/0 00:00:00 ps -fu root
pts/0 00:00:00 sed s/.* [0-9][0-9]*:[0-9][0-9] \(.*\)/\1/
root 20246 3644 0 Jul22 ? 00:00:17 sshd: root@pts/0
root 20249 20246 0 Jul22 pts/0 00:00:00 -bash
криво вывело
у мну вот так получилось ::)
root@sysadmin:/home/slava# ps -fu $USER | sed 's/.* [0-9][0-9]*:[0-9][0-9] \(.*\)/\1/'
UID PID PPID C STIME TTY TIME CMD
? 00:00:00 init [2]
? 00:00:00 [kthreadd]
? 00:00:00 [migration/0]
? 00:00:00 [ksoftirqd/0]
? 00:00:00 [watchdog/0]
? 00:00:00 [events/0]
? 00:00:00 [cpuset]
? 00:00:00 [khelper]
? 00:00:00 [netns]
? 00:00:00 [async/mgr]
? 00:00:00 [pm]
? 00:00:00 [sync_supers]
? 00:00:00 [bdi-default]
? 00:00:00 [kintegrityd/0]
? 00:00:00 [kblockd/0]
? 00:00:00 [kacpid]
? 00:00:00 [kacpi_notify]
? 00:00:00 [kacpi_hotplug]
? 00:00:00 [kseriod]
? 00:00:00 [kondemand/0]
? 00:00:00 [khungtaskd]
? 00:00:00 [kswapd0]
? 00:00:00 [ksmd]
? 00:00:00 [aio/0]
? 00:00:00 [crypto/0]
? 00:00:00 [ksuspend_usbd]
? 00:00:00 [khubd]
? 00:00:02 [ata/0]
? 00:00:00 [ata_aux]
? 00:00:00 [kmmcd]
? 00:00:04 [scsi_eh_0]
? 00:00:00 [scsi_eh_1]
? 00:00:00 [scsi_eh_2]
? 00:00:00 [scsi_eh_3]
? 00:00:00 [scsi_eh_4]
? 00:00:00 [usb-storage]
? 00:00:00 [usbhid_resumer]
? 00:00:00 [kjournald]
? 00:00:00 udevd --daemon
? 00:00:00 [flush-8:0]
? 00:00:00 udevd --daemon
? 00:00:00 udevd --daemon
? 00:00:00 [kpsmoused]
? 00:00:00 [phy0]
? 00:00:00 [i915]
? 00:00:00 [hd-audio0]
? 00:00:00 [firewire_sbp2]
? 00:00:00 [kjournald]
? 00:00:00 /usr/sbin/rsyslogd -c4
? 00:00:00 /usr/sbin/acpi_fakekeyd
? 00:00:00 /usr/sbin/NetworkManager
? 00:00:00 /usr/sbin/modem-manager
? 00:00:00 /usr/sbin/gdm3
? 00:00:00 /usr/lib/gdm3/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1
? 00:00:00 /usr/sbin/acpid
tty7 00:01:14 /usr/bin/Xorg :0 -br -verbose -audit 0 -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-OxLCG0/database -nolisten tcp vt7
? 00:00:00 /sbin/wpa_supplicant -u -s
? 00:00:00 /usr/sbin/apache2 -k start
? 00:00:00 /usr/sbin/cron
? 00:00:00 /usr/sbin/console-kit-daemon --no-daemon
? 00:00:00 /usr/sbin/cupsd -C /etc/cups/cupsd.conf
? 00:00:00 /usr/lib/gdm3/gdm-session-worker
? 00:00:00 /usr/lib/policykit-1/polkitd
? 00:00:00 /usr/lib/upower/upowerd
? 00:00:00 hald-runner
? 00:00:00 [kconservative/0]
? 00:00:00 /usr/sbin/kerneloops
? 00:00:00 hald-addon-input: Listening on /dev/input/event15 /dev/input/event0 /dev/input/event3 /dev/input/event2 /dev/input/event9 /dev/input/event8 /dev/input/event1 /dev/input/event14
? 00:00:00 /usr/lib/hal/hald-addon-rfkill-killswitch
? 00:00:00 /usr/lib/hal/hald-addon-leds
? 00:00:00 /usr/lib/hal/hald-addon-generic-backlight
? 00:00:00 hald-addon-storage: polling /dev/sdb (every 2 sec)
? 00:00:03 hald-addon-storage: polling /dev/sr0 (every 2 sec)
? 00:00:00 [rpciod/0]
? 00:00:00 /usr/sbin/inetd
? 00:00:00 /usr/sbin/nmbd -D
? 00:00:00 [lockd]
? 00:00:00 [nfsd4]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 [nfsd]
? 00:00:00 /usr/sbin/rpc.mountd --manage-gids
? 00:00:00 /usr/sbin/smbd -D
? 00:00:00 /usr/sbin/smbd -D
? 00:00:00 /usr/sbin/winbindd
? 00:00:00 /usr/sbin/winbindd
? 00:00:00 [kauditd]
? 00:00:00 /usr/lib/udisks/udisks-daemon
? 00:00:01 udisks-daemon: polling /dev/sr0 /dev/sdb
tty1 00:00:00 /sbin/getty 38400 tty1
tty2 00:00:00 /sbin/getty 38400 tty2
tty3 00:00:00 /sbin/getty 38400 tty3
tty4 00:00:00 /sbin/getty 38400 tty4
tty5 00:00:00 /sbin/getty 38400 tty5
tty6 00:00:00 /sbin/getty 38400 tty6
? 00:00:00 /usr/sbin/winbindd
? 00:00:00 /usr/sbin/winbindd
? 00:00:00 /usr/bin/sudo -H -S -p GNOME_SUDO_PASS -u root -- /usr/bin/x-terminal-emulator
? 00:00:00 gnome-terminal
? 00:00:00 dbus-launch --autolaunch 15f1c0477fc703affbdac6390000000e --binary-syntax --close-stderr
? 00:00:00 /usr/bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
? 00:00:00 /usr/lib/libgconf2-4/gconfd-2
? 00:00:00 gnome-pty-helper
pts/1 00:00:00 bash
pts/1 00:00:00 ps -fu root
pts/1 00:00:00 sed s/.* [0-9][0-9]*:[0-9][0-9] \(.*\)/\1/
[/spoiler]
ага. там TIME в другом формате. засада вопщем.
Вот так :]
ps -fu $USER | tr -s " " | cut -f8- -d" " | sed 's/.*:[0-9][0-9] \(.*\)/\1/'