Solved

awk cpu time from file

Posted on 2006-11-29
6
257 Views
Last Modified: 2010-04-21
Hi

I have this file That sometimes has one cpu reading and other times it has 2.  What I would like to do is do and awk on it then echo a line with that in it to a file and if it has 2 then  it will just echo one line then the other.

so if it had 2 cpus in the file it would do this

cpu = 5000
cpu = 2000

instead of what it does now.
cpu = 5000 2000

Here is my code

#Strips the cpu time from each run ran and adds it to a file
set runs=/pat306/acct/runs
set days=/pat306/acct/days
set cmds=$0
set pwdir=$1
set anyltype=$2
set id=$3
set server=`uname -n`
set dates=`date +%y-%m-%d-%R`
set filedate=`date +%y-%m-%d`
set user=`whoami`
echo $cmds
echo $pwdir
echo $server
echo $dates
echo $user
echo $anyltype
echo $id
echo $filedate
set cputime=`awk '/CPU/{print $6}' $pwdir/$id.dat`
echo $cputime
echo $user"  "$cputime"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log

Here is a sample of what I am working with  http://theyac.org/cpu.txt
The lines are TOTAL CPU TIME (SEC) =   24.800 and TOTAL CPU TIME (SEC) =   9450.7

But sometimes there will only be TOTAL CPU TIME (SEC) =   9450.7

Thanks
Bennie
0
Comment
Question by:fixitben
  • 3
  • 3
6 Comments
 
LVL 58

Expert Comment

by:amit_g
ID: 18039237
Change

echo $user"  "$cputime"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log

to

for cpt in "$cputime"
do
    echo $user"  "$cpt"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log
done
0
 
LVL 7

Author Comment

by:fixitben
ID: 18046164
When I use the above I get this
for: Command not found.
do: Command not found.
cpt: Undefined variable.

Here is my code.

#!/bin/csh
#Abaqus Acct Run Script
#Strips the cpu time from each run ran and adds it to a file
set runs=/pat306/acct/runs
set days=/pat306/acct/days
set cmds=$0
set pwdir=$1
set anyltype=$2
set id=$3
set server=`uname -n`
set dates=`date +%y-%m-%d-%R`
set filedate=`date +%y-%m-%d`
set user=`whoami`
set pwdir=/pat306/acct/scripts
echo $cmds
echo $pwdir
echo $server
echo $dates
echo $user
echo $anyltype
echo $id
echo $filedate
set cputime=`awk '/CPU/{print $6}' $pwdir/Rringstiff01.dat`
echo $cputime
for cpt in "$cputime"
do
echo $user"  "$cpt"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log
done

Thanks
Fixitben
0
 
LVL 58

Expert Comment

by:amit_g
ID: 18048357
You are using cshell. The syntax is different. Change

for cpt in "$cputime"
do
echo $user"  "$cpt"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log
done

to

foreach cpt ( "$cputime" )
    echo $user"  "$cpt"  "$dates" " $id"  "$server"  "$anyltype"  "$pwdir >> $runs/DoNotDeleteDaliyRun.log
end
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 7

Author Comment

by:fixitben
ID: 18048456
Well it prints 2 lines but one has no cpu time and the other has both

root    06-11-30-13:56    aba5.stress.com
root  5.8400 196.99  06-11-30-13:57    aba5.stress.com


Do you know why?

Thanks
Fixitben
0
 
LVL 58

Accepted Solution

by:
amit_g earned 500 total points
ID: 18048553
Remove quotes from "$cputime" in the foreach
0
 
LVL 7

Author Comment

by:fixitben
ID: 18048700
Thanks
A million.


0

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The purpose of this article is to fix the unknown display problem in Linux Mint operating system. After installing the OS if you see Display monitor is not recognized then we can install "MESA" utilities to fix this problem or we can install additio…
The purpose of this article is to demonstrate how we can upgrade Python from version 2.7.6 to Python 2.7.10 on the Linux Mint operating system. I am using an Oracle Virtual Box where I have installed Linux Mint operating system version 17.2. Once yo…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question