メモ:
以前のバージョンを使用していますが、時間を秒単位で確認するps
オプションはありません。-o etimes
だから解決策は2時間以上実行されたプロセスの一覧表示ここでは直接使用できません。
3時間以上実行されたプロセスを一覧表示したいです。以下は、プロセスの一覧表示に使用するコマンドです。
注文する
ps -Ao stime,etime,cmd --sort=start_time | grep "/home/mose/bin/hi.sh" | grep -v "grep"
出力
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_7 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_5 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_8 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_6 -o 220606
07:54 03:43:46 /bin/ksh /home/mose/bin/hi.sh -j Kenda -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_6 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaFRONTOFFICE_5 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_4 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_8 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_5 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_3 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_2 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_7 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_1 -o 220607
08:30 03:07:01 /bin/ksh /home/mose/bin/hi.sh -j JituSUBT -o 220607
08:40 02:56:58 /bin/ksh /home/mose/bin/hi.sh -j JituREFRESH -o 220607
09:10 02:27:32 /bin/ksh /home/mose/bin/hi.sh -j KendaWOCAS -o 220607
09:56 01:41:33 /bin/ksh /home/mose/bin/hi.sh -j KendaBACKOFFICE_CCB_KUA_4 -o 220607
それでは、3時間以上実行されたプロセスのみを一覧表示するにはどうすればよいですか?
ベストアンサー1
プロセスが3時間以上実行されている場合、-
2番目のフィールドに1つが表示されるか(1日以上実行されたため、次の内容が表示されます)、2番目のフィールドの最初の1-03:36:53
数字が表示されます。 3以上でなければなりません。したがって、コマンドを少し単純化するには、次のようにします。
ps -C hi.sh -o stime,etime,cmd --sort=start_time |
awk '$2 ~ /-/ || $2 ~ /^(0[3-9]|[12]):[0-9]+:[0-9]+/'
出力ps
例では、以下が生成されます。
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_7 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_5 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_8 -o 220606
Jun06 1-03:36:53 /bin/ksh /home/mose/bin/hi.sh -j KendaEVALUATION_6 -o 220606
07:54 03:43:46 /bin/ksh /home/mose/bin/hi.sh -j Kenda -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_6 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaFRONTOFFICE_5 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_4 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_8 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_5 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_3 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_2 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_7 -o 220607
08:01 03:36:54 /bin/ksh /home/mose/bin/hi.sh -j KendaWORKING_TIME_1 -o 220607
08:30 03:07:01 /bin/ksh /home/mose/bin/hi.sh -j JituSUBT -o 220607
このコマンドは、2番目のフィールド()にaまたは()で始まるか、aの後に3から9の間の数字()または()1または2()が続く行を検索し、次に()で続く行をawk
検索します。 ) 2 つの数値セットを分離しました。$2
-
^
0
0[3-9]
|
[12]
:
[0-9]+:[0-9]+