On 17/02/2008, Andrej Ricnik-Bay <andrej.groups@gmail.com> wrote:
> On 16/02/2008, Greg Smith <gsmith@gregsmith.com> wrote:
>
> > top -bc | tee topdata
> >
> > That will save everything to a file called topdata while also letting you
> > watch it scroll by. Not as easy to catch the bad periods that way, the
> > output is going to be a huge data file, but you'll have a log to sort
> > through of everything. Control-C to get out of there when you're bored.
>
> Or pipe through the following awk-script to make the output
> less overwhelming ... save it as top.awk
>
> BEGIN{
> # the sort numerically sorts by memory usage percentage
> # head filters out the top 20 contenders
> command = "LC_ALL=C sort -k 10,10gr|head -20"
> }
> {
> # read all of top into an array
> line[NR]=$0
> last=NR
> }
> END{
> # print the header well-formed
> for(i=1;i<8;i++){
> print line[i]
> }
> # and do the sort & strip of the processes
> for(i=8;i<last;i++){
> print line[i]|& command
> }
> close(command, "to")
> while ((command |& getline out) > 0)
> print out
> close(command)
> }
>
> Invoke like so
> top -b -d 1 | awk -f top.awk | tee topdata
>
> Instead of the "getting bored Ctrl-C" maybe a "-n 3600" as
> extra parameter to top to get roughly one hours worth of data...
Thanks, but it gives me syntax errors:
~> top -b -d 1 | awk -f top.awk | tee topdata
awk: top.awk:24: for(i=8;i<last;i++
awk: top.awk:24: ^ syntax error
awk: top.awk:28:
awk: top.awk:28: ^ syntax error
awk: top.awk:29:
awk: top.awk:29: ^ syntax error
awk: top.awk:31:
awk: top.awk:31: ^ syntax error
awk: top.awk:31: }
awk: top.awk:31: ^ invalid char '' in expression
Any ideas?