Processes


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Processes
# 1  
Old 01-25-2007
Processes

I have a file like this.

No. State Query Times User Processed Syslog
1 ready idle 973s 0 /Application/ugsvols/bldata01/logs/imanscript1562.syslog
2 ready idle 803s 83997 13 /Application/ugsvols/bldata01/logs/imanscript1542.syslog
3 ready idle 2954s 106641 5 /Application/ugsvols/bldata01/logs/imanscript24717.syslog
4 ready idle 5674s 82692 15 /Application/ugsvols/bldata01/logs/imanscript16618.syslog
5 ready idle 12626s X035077 5 /Application/ugsvols/bldata01/logs/imanscript27216.syslog
6 ready idle 16088s X038493 19 /Application/ugsvols/bldata01/logs/imanscript16795.syslog
7 ready idle 19069s 105837 14 /Application/ugsvols/bldata01/logs/imanscript8563.syslog

the final number before .syslog is the process id.

for eg: in the above if you take 7th one 8563 is the PID.

Now what i want to achieve is if the user name is null in the users column all
the process should be killed. then it should check for all users. if the users idle time that is $4 is greater than 20000 secs it should kill those process. Please let me know how to acheive this.

i tried the below command for $4 > 200000s but it's not printing correctly.

cat procs.txt|awk '{if( $4 > 200000s ) print $4,$7 }

Last edited by Krrishv; 01-25-2007 at 06:29 AM..
# 2  
Old 01-25-2007
Code:
awk ' { tm=$4; sub("s","",tm); if( tm > 20000 ) print } ' file

# 3  
Old 01-25-2007
Anbu, it's showing me all the values not above 200000

crypto $ awk ' { tm=$4; sub("s","",tm); if( tm > 200000 ) print } ' procs.txt
1 ready idle 417s 0 /Application/ugsvols/bldata01/logs/imanscript1562.syslog
2 ready idle 247s 83997 13 /Application/ugsvols/bldata01/logs/imanscript1542.syslog
3 ready idle 2398s 106641 5 /Application/ugsvols/bldata01/logs/imanscript24717.syslog
4 ready idle 5118s 82692 15 /Application/ugsvols/bldata01/logs/imanscript16618.syslog
17 ready idle 81948s 1 /Application/ugsvols/bldata01/logs/imanscript27577.syslog
18 ready idle 86150s 1 /Application/ugsvols/bldata01/logs/imanscript15930.syslog
19 ready idle 99052s 1 /Application/ugsvols/bldata01/logs/imanscript8456.syslog
23 ready idle 241869s 1 /Application/ugsvols/bldata01/logs/imanscript7477.syslog
24 ready idle 400285s 1 /Application/ugsvols/bldata01/logs/imanscript5391.syslog
25 ready idle 491500s 1 /Application/ugsvols/bldata01/logs/imanscript26470.syslog
26 ready idle 496002s 1 /Application/ugsvols/bldata01/logs/imanscript12089.syslog
27 ready idle 573108s 1 /Application/ugsvols/bldata01/logs/imanscript18055.syslog
28 ready idle 598407s 1 /Application/ugsvols/bldata01/logs/imanscript26278.syslog
29 ready idle 597933s 3 /Application/ugsvols/bldata01/logs/imanscript9307.syslog
30 ready idle 685638s 1 /Application/ugsvols/bldata01/logs/imanscript28481.syslog
31 ready idle 691340s 1 /Application/ugsvols/bldata01/logs/imanscript8238.syslog
32 ready idle 584211s 3 /Application/ugsvols/bldata01/logs/imanscript8233.syslog
33 ready idle 728545s 1 /Application/ugsvols/bldata01/logs/imanscript22388.syslog
34 ready idle 755560s 1 /Application/ugsvols/bldata01/logs/imanscript22292.syslog
35 ready idle 756461s 1 /Application/ugsvols/bldata01/logs/imanscript19214.syslog

Last edited by Krrishv; 01-25-2007 at 07:31 AM..
# 4  
Old 01-25-2007
Quote:
Originally Posted by Krrishv
Anbu, it's throwing me error.

crypto $ awk ' { tm=$4; sub("s","",tm); if( tm > 200000 ) print } 'procs.txt
syntax error The source line is 1.
The error context is
{ tm=$4; sub("s","",tm); if( tm > 200000 ) print } >>> procs. <<< txt
awk: Quitting
The source line is 1.

Also Please let me know how to print if the users column is null.
Your first line of the file causes the problem
Code:
No. State Query Times User Processed Syslog

Code:
awk ' NR > 1  { tm=$4; sub("s","",tm); if( tm > 200000 ) print } 'procs.txt

If you are sure that only the user field contains null then try this
Code:
awk ' NF < 7 ' file

or you try this
Code:
awk ' $0 !~ "[0-9]+s [^ ]+ [0-9]+" ' file


Last edited by anbu23; 01-25-2007 at 07:50 AM..
# 5  
Old 01-25-2007
Quote:
Originally Posted by Krrishv
Anbu, it's showing me all the values not above 200000

crypto $ awk ' { tm=$4; sub("s","",tm); if( tm > 200000 ) print } ' procs.txt
1 ready idle 417s 0 /Application/ugsvols/bldata01/logs/imanscript1562.syslog
2 ready idle 247s 83997 13 /Application/ugsvols/bldata01/logs/imanscript1542.syslog
3 ready idle 2398s 106641 5 /Application/ugsvols/bldata01/logs/imanscript24717.syslog
4 ready idle 5118s 82692 15 /Application/ugsvols/bldata01/logs/imanscript16618.syslog
17 ready idle 81948s 1 /Application/ugsvols/bldata01/logs/imanscript27577.syslog
18 ready idle 86150s 1 /Application/ugsvols/bldata01/logs/imanscript15930.syslog
19 ready idle 99052s 1 /Application/ugsvols/bldata01/logs/imanscript8456.syslog
23 ready idle 241869s 1 /Application/ugsvols/bldata01/logs/imanscript7477.syslog
24 ready idle 400285s 1 /Application/ugsvols/bldata01/logs/imanscript5391.syslog
25 ready idle 491500s 1 /Application/ugsvols/bldata01/logs/imanscript26470.syslog
26 ready idle 496002s 1 /Application/ugsvols/bldata01/logs/imanscript12089.syslog
27 ready idle 573108s 1 /Application/ugsvols/bldata01/logs/imanscript18055.syslog
28 ready idle 598407s 1 /Application/ugsvols/bldata01/logs/imanscript26278.syslog
29 ready idle 597933s 3 /Application/ugsvols/bldata01/logs/imanscript9307.syslog
30 ready idle 685638s 1 /Application/ugsvols/bldata01/logs/imanscript28481.syslog
31 ready idle 691340s 1 /Application/ugsvols/bldata01/logs/imanscript8238.syslog
32 ready idle 584211s 3 /Application/ugsvols/bldata01/logs/imanscript8233.syslog
33 ready idle 728545s 1 /Application/ugsvols/bldata01/logs/imanscript22388.syslog
34 ready idle 755560s 1 /Application/ugsvols/bldata01/logs/imanscript22292.syslog
35 ready idle 756461s 1 /Application/ugsvols/bldata01/logs/imanscript19214.syslog
Its working for me.
# 6  
Old 01-25-2007
2nd one is also not working the same output.

crypto $ awk ' $0 !~ "[0-9]+s [^ ]+ [0-9]+" ' procs.txt
1 ready idle 417s 0 /Application/ugsvols/bldata01/logs/imanscript1562.syslog
2 ready idle 247s 83997 13 /Application/ugsvols/bldata01/logs/imanscript1542.syslog
3 ready idle 2398s 106641 5 /Application/ugsvols/bldata01/logs/imanscript24717.syslog
4 ready idle 5118s 82692 15 /Application/ugsvols/bldata01/logs/imanscript16618.syslog
5 ready idle 12070s X035077 5 /Application/ugsvols/bldata01/logs/imanscript27216.syslog
6 ready idle 15532s X038493 19 /Application/ugsvols/bldata01/logs/imanscript16795.syslog
7 ready idle 18513s 105837 14 /Application/ugsvols/bldata01/logs/imanscript8563.syslog
17 ready idle 81948s 1 /Application/ugsvols/bldata01/logs/imanscript27577.syslog
18 ready idle 86150s 1 /Application/ugsvols/bldata01/logs/imanscript15930.syslog
19 ready idle 99052s 1 /Application/ugsvols/bldata01/logs/imanscript8456.syslog
20 ready idle 165093s 1 /Application/ugsvols/bldata01/logs/imanscript339.syslog
21 ready idle 172267s 1 /Application/ugsvols/bldata01/logs/imanscript10643.syslog
22 ready idle 180370s 1 /Application/ugsvols/bldata01/logs/imanscript18219.syslog
23 ready idle 241869s 1 /Application/ugsvols/bldata01/logs/imanscript7477.syslog
24 ready idle 400285s 1 /Application/ugsvols/bldata01/logs/imanscript5391.syslog
25 ready idle 491500s 1 /Application/ugsvols/bldata01/logs/imanscript26470.syslog
26 ready idle 496002s 1 /Application/ugsvols/bldata01/logs/imanscript12089.syslog
27 ready idle 573108s 1 /Application/ugsvols/bldata01/logs/imanscript18055.syslog
28 ready idle 598407s 1 /Application/ugsvols/bldata01/logs/imanscript26278.syslog
29 ready idle 597933s 3 /Application/ugsvols/bldata01/logs/imanscript9307.syslog
30 ready idle 685638s 1 /Application/ugsvols/bldata01/logs/imanscript28481.syslog
31 ready idle 691340s 1 /Application/ugsvols/bldata01/logs/imanscript8238.syslog
32 ready idle 584211s 3 /Application/ugsvols/bldata01/logs/imanscript8233.syslog
33 ready idle 728545s 1 /Application/ugsvols/bldata01/logs/imanscript22388.syslog
34 ready idle 755560s 1 /Application/ugsvols/bldata01/logs/imanscript22292.syslog
35 ready idle 756461s 1 /Application/ugsvols/bldata01/logs/imanscript19214.syslog
36 ready idle 1039675s 1 /Application/ugsvols/bldata01/logs/imanscript10754.syslog
37 ready idle 1116783s 1 /Application/ugsvols/bldata01/logs/imanscript2294.syslog
38 ready idle 1121585s 1 /Application/ugsvols/bldata01/logs/imanscript16838.syslog
39 ready idle 1191791s 1 /Application/ugsvols/bldata01/logs/imanscript4748.syslog
crypto $

otherwise if i print $5 in my file it shows below like this.

crypto $ awk '{print$5}' procs.txt
0
83997
106641
82692
X035077
X038493
105837
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
3
1
1
1
1
1
1
1

as for those who doesn't have users name next column is considered as 5th column. in this situation.so can we print the single digit rows which is considered to be no users.

And first one no luck its not printing.
# 7  
Old 01-25-2007
I made modification in the above code. Its NF < 7 and not < 6
Both the code works for me
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

processes

may i know a command to find processes not attached to a terminal?? (1 Reply)
Discussion started by: riya9
1 Replies

2. Shell Programming and Scripting

Finding the age of a unix process, killing old processes, killing zombie processes

I had issues with processes locking up. This script checks for processes and kills them if they are older than a certain time. Its uses some functions you'll need to define or remove, like slog() which I use for logging, and is_running() which checks if this script is already running so you can... (0 Replies)
Discussion started by: sukerman
0 Replies

3. UNIX for Dummies Questions & Answers

Processes

Hi all, I needed a little help. It's OS thing. Suppose I have 2 machine connect over a network, I will call my machines as M1and M2. If I copy a files from M1 to M2. What tasks are these two machine performing for copy to work. My assumption is that M1 is performing read action and... (1 Reply)
Discussion started by: vishwesh
1 Replies

4. Solaris

Identifying and grouping OS processes and APP processes

Hi Is there an easy way to identify and group currently running processes into OS processes and APP processes. Not all applications are installed as packages. Any free tools or scripts to do this? Many thanks. (2 Replies)
Discussion started by: wilsonee
2 Replies

5. UNIX for Advanced & Expert Users

Monitoring Processes - Killing hung processes

Is there a way to monitor certain processes and if they hang too long to kill them, but certain scripts which are expected to take a long time to let them go? Thank you Richard (4 Replies)
Discussion started by: ukndoit
4 Replies

6. UNIX for Dummies Questions & Answers

Processes

Can someone tell how to find out how long a process has been running? I want to find something that is usually there that the paging system can check on. Thanks (4 Replies)
Discussion started by: Beetlejuice
4 Replies

7. Filesystems, Disks and Memory

processes

write a program create two processes to run a for loop which adds numbers 1 to n , say one process adds odd numbers and other adds even numbers (1 Reply)
Discussion started by: jayaram_miryabb
1 Replies

8. Shell Programming and Scripting

I need some example of Co-Processes

I want to know how to work the Co-Processes in kornshell scripts. So, I very need some script about Co-Processes! thanks ...:) (3 Replies)
Discussion started by: javalee
3 Replies

9. UNIX for Dummies Questions & Answers

processes

What command string will locate ONLY the PID of a process and ouput only the number of PID of the process? (1 Reply)
Discussion started by: mma_buc_98
1 Replies

10. UNIX for Dummies Questions & Answers

co-processes

Is it possible to have a main script (i will call it main.ksh) that executes say, 4 other scripts (sub_prog_1.ksh, sub_prog_2.ksh etc..) from within this main.ksh (simultaneously/in parallel), have them run in the background and communicate back to main.ksh when complete? My guess is to use... (1 Reply)
Discussion started by: google
1 Replies
Login or Register to Ask a Question