|
Hi Era,
I have the list produced by :
ps -ef -o "user pid ppid cpu etime tty time args"
and the output looks like:
oracle 1626616 1 0 37-05:24:09 - 00:06:29 oracleDEV (LOCAL=NO)
oracle 1638908 1 0 37-05:24:09 - 00:06:24 oracleDEV (LOCAL=NO)
oracle 1642760 1 0 37-05:24:08 - 00:06:23 oracleDEV (LOCAL=NO)
oracle 1651012 1 0 26-01:15:11 - 00:02:07 oracleDEV (LOCAL=NO)
oracle 1655052 1 0 37-05:24:08 - 00:06:22 oracleDEV (LOCAL=NO)
oracle 1659266 1 4 01:14:16 - 00:01:49 oracleDEV (LOCAL=NO)
oracle 1712408 1 0 36-04:08:24 - 00:06:26 oracleDEV (LOCAL=NO)
oracle 1720698 1 0 05:27 - 00:00:00 oracleDEV (LOCAL=NO)
oracle 1728950 1 0 14-06:37:31 - 00:02:33 oracleDEV (LOCAL=NO)
oracle 1732902 1 0 01:52:11 - 00:00:01 oracleDEV (LOCAL=NO)
oracle 1737166 1 0 08:32:27 - 00:00:10 oracleDEV (LOCAL=NO)
oracle 1745166 1 0 08:57:59 - 00:00:18 oracleDEV (LOCAL=NO)
oracle 1753436 1 0 01:24:40 - 00:00:01 oracleDEV (LOCAL=NO)
oracle 1765692 1 0 01:28:10 - 00:00:01 oracleDEV (LOCAL=NO)
The 3rd column is the elapsed time and in Format of [[ dd-]hh:]mm:ss, is it possible I only want it to return the PIDs for processes elapsed longer than 8 hours?
if I issue :
ps -ef -o "user pid ppid cpu etime tty time args" | awk '$8 ~ /(^|\/)[f]60/ && $3>1 { print $2 }'
it returns all the PIDs regardless of elapsed time, can you please advise how to modify the script and let it return only processes elapsed longer than 8 hours?
Many thanks!
Victor Cheung
|