Script-friendly (parseble) ps(1) output?
Eduardo Meyer
dudu.meyer at gmail.com
Thu Oct 30 13:02:10 PDT 2008
On Thu, Oct 30, 2008 at 12:18 PM, Oliver Fromme <olli at lurza.secnetix.de> wrote:
> Eduardo Meyer wrote:
> > I need to write a cgi script which will print the output from ps(1) in
> > a table (html), so the average-operator can click on a KILL link and
Thank you all. I didnt mention the language, yes, I wanted it with
shell script. Sadly, no idea was completly enough, for the default ps
output it simple has no pattern. No multiple-pattern would do the job
safely. With kernel stuff like idle, output happens to be completly
nonsense. Counting positions in a array is the way to go, but not with
the default output. Things just happen to get completly trashed with
long values, like idle CPU time.
What I did was formating every output header like that
ps -o start="<<<..............................................>>>" -o
lstart="<<<..............................................>>>" -o
args="<<<..............................................>>>" etc
So I could find the begining and the ending column. "-o command" or
"-o args" have always to be the last option, if I dont want 'em to get
truncated.
So sad.
Now my next problem, do the sabe with sockstat....
%sockstat | head -4
USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS
freebsdsupportsshd 57255 3 tcp4 172.16.0.225:22 172.16.0.69:63583
freebsdsupportsshd 57255 4 stream -> ??
root sshd 57253 3 tcp4 172.16.0.225:22 172.16.0.69:63583
So I have the USER and COMMAND column "merged" in a single string,
because username is large. Again, space can not be used as a
separator, but hopefully only the patterns with "->" will have space
if not a column separator, easier to parse.
But sockstat have no formatting option to be issued like -o from
ps(1). Measing in the very first sockstat output, I dont know what to
do... :(
--
===========
Eduardo Meyer
pessoal: dudu.meyer at gmail.com
profissional: ddm.farmaciap at saude.gov.br
More information about the freebsd-stable
mailing list