最もCPUパワーを使用するプロセスを見つける小さなコマンドを作成しようとしています。
まず、ps aux > file.txt
その後 cut -c 16-20 file.txt | sort -n | tail -5
。
私が得る結果はこれです:
1.0
2.7
8.
14.5
14.5
だから私の質問は、どうすれば両方の%CPU
使用法と一緒に出力される他のフィールド?
正解は次のとおりです。
ps --sort=-pcpu
トップ5の場合:
ps --sort=-pcpu | head -n 6
したがって、並べ替えを妨げることなく列を指定できます。
例:
ps -Ao user,uid,comm,pid,pcpu,tty --sort=-pcpu | head -n 6
「ckujau」のメモ:--sort
はps
のprocps
によってサポートされています。他の実装ではこのオプションがない場合があります。
適切なフィールド(デフォルトでは空白から非空白への遷移として定義されています)でソートします。私の場合は3番目です。
ps aux | sort -n -k 3
受け入れられた解決策の1つの問題は、さまざまな列のヘッダーが出力に含まれることです。もう1つの問題は、スイッチ-x
からps
を使用すると、一部のプログラムに対して完全なコマンドラインが提供され、実行されて出力の邪魔になる可能性があることです。
煩わしいコマンドライン
saml 18174 7.3 3.2 1174896 259756? Sl Aug27 132:38/opt/google/chrome/chrome --type = renderer --lang = en-US --force-fieldtrials = AsyncDns/AsyncDnsB/ForceCompositingMode/disable/InfiniteCache/No/OmniboxHQPReplaceHUPProhibitTrumpingInlineableResult/Standard/OmniboxSearchSuggestTrialStarted2013Q1/OneClickSignIn/Standard/Prerender/PrerenderControl/SendFeedbackLinkLocation/default/Test0PercentDefault/group_01/UMA-Dynamic-Binary-Uniformity-Trial/default/UMA-Session-Randomized-Uniformity-Trial-5-Percent/group_17/UMA-Uniformity-Trial -1-Percent/group_20/UMA-Uniformity-Trial-10-Percent/group_07/UMA-Uniformity-Trial-20-Percent/default/UMA-Uniformity-Trial-5-Percent/group_04/UMA-Uniformity-Trial-50 -Percent/group_01/--enable-crash-reporter = 4061BD10D0DC127169CE2132BC3FF8EC、Fedora release 14(Laughlin)--extension-process --renderer-print-preview --disable-webgl --disable-pepper-3d --disable-gl -multisampling --disable-accelerated-compositing --disable-accelerated-2d-canvas --disable-accelerated-video-decode --channel = 18086.4.142338581 9
ルート1764 7.7 0.3 163692 28928 tty1 Ss + Aug21 817:49/usr/bin/Xorg:0 -nr -verbose -auth/var/run/gdm/auth-for-gdm-fADI0V/database -nolisten tcp vt1
このようなps
出力を見ると、特にChromeは非常に煩わしいものになります。
出力のヘッダー
$ ps auf | sort -nk 3 | head -20
...
root 1741 0.0 0.0 4140 400 tty5 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty5
root 1743 0.0 0.0 4140 400 tty6 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty6
saml 13780 0.0 0.0 115088 4216 pts/13 Ss Aug27 0:00 bash
saml 20432 0.0 0.0 6308 400 pts/9 S+ Aug27 0:00 \_ inotifywatch -e CREATE /etc
saml 8206 0.0 0.0 115296 1108 pts/6 Ss+ Aug21 0:03 bash
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
saml 29352 0.1 0.5 661848 42960 pts/13 Sl+ 17:59 0:18 \_ irb
...
出力の7行目に、ヘッダーが混在していることがわかります。
ヘッダーを取り除く
ps
は、これらの列ヘッダーの表示を無効にするためのスイッチを提供します。使い方はとても簡単で、--no-heading
スイッチを追加するだけです。
$ ps aux --no-heading | sort -nk 3 | head -10
68 1481 0.0 0.0 38592 2144 ? Ssl Aug21 0:28 hald
68 1527 0.0 0.0 18016 672 ? S Aug21 0:01 /usr/libexec/hald-addon-acpi
avahi 1333 0.0 0.0 27872 1172 ? S Aug21 0:01 avahi-daemon: running [grinchy.local]
avahi 1334 0.0 0.0 27752 20 ? S Aug21 0:00 avahi-daemon: chroot helper
dbus 1307 0.0 0.0 22716 1900 ? Ss Aug21 1:03 dbus-daemon --system
gdm 1879 0.0 0.0 317220 2740 ? Sl Aug21 0:00 /usr/libexec/polkit-gnome-authentication-agent-1
ntp 3060 0.0 0.0 32600 2152 ? Ss 20:05 0:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
root 1 0.0 0.0 19420 1004 ? Ss Aug21 0:01 /sbin/init
root 1006 0.0 0.0 0 0 ? S Aug21 0:00 [kvm-irqfd-clean]
root 1020 0.0 0.0 0 0 ? S Aug21 2:02 [kdmflush]
またはこのように:
$ ps auf --no-heading | sort -nk 3 |head -10
root 1735 0.0 0.0 4140 400 tty2 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty2
root 1737 0.0 0.0 4140 400 tty3 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty3
root 1739 0.0 0.0 4140 400 tty4 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty4
root 1741 0.0 0.0 4140 400 tty5 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty5
root 1743 0.0 0.0 4140 400 tty6 Ss+ Aug21 0:00 /sbin/mingetty /dev/tty6
saml 13780 0.0 0.0 115088 4216 pts/13 Ss Aug27 0:00 bash
saml 20432 0.0 0.0 6308 400 pts/9 S+ Aug27 0:00 \_ inotifywatch -e CREATE /etc
saml 2098 0.0 0.0 115508 3148 pts/9 Ss Aug22 0:05 bash
saml 27134 0.0 0.0 115496 6768 pts/18 Ss Aug27 0:02 bash
saml 3248 0.0 0.0 115076 1024 pts/0 Ss+ Aug21 0:00 bash
表示されている列を制御します。
これは苦痛に思えるかもしれませんが、ps
出力のキャプチャをスクリプトで記述している場合は、それほど悪くありません。このようなコマンドはps aux
の出力を模倣しますが、より長い形式のCOMMAND
列を、実行可能ファイルの名前だけを表示する短いバージョンに置き換えます。
$ ps ax --no-headings -o user,pid,%cpu,%mem,vsz,sgi_rss,tname,stat,start_time,time,ucmd
列ヘッダーなしですべてをまとめると、スクリプトを作成するときに処理がはるかに簡単になります。
最高から最低の%CPUプロセスのリスト:
$ ps ax --no-headings -o user,pid,%cpu,%mem,vsz,sgi_rss,tname,stat,start_time,time,ucmd |sort -nrk 3|head -10
saml 18086 114 6.4 1418852 515236 ? Sl Aug27 1-10:53:31 chrome
saml 18536 14.7 4.1 1276240 328636 ? Sl Aug27 04:29:21 chrome
saml 18558 12.2 3.4 1209712 278228 ? Sl Aug27 03:44:22 chrome
saml 18543 10.9 3.8 1238132 308824 ? Rl Aug27 03:20:18 chrome
root 1764 7.7 0.4 170220 35276 tty1 Rs+ Aug21 13:40:16 Xorg
saml 18174 7.3 3.0 1167728 241728 ? Sl Aug27 02:14:25 chrome
saml 18314 3.6 1.4 1049020 119308 ? Sl Aug27 01:06:19 chrome
saml 18528 2.7 3.1 1178368 251212 ? Sl Aug27 00:50:55 chrome
saml 2389 2.0 0.1 330632 8480 ? Sl Aug21 03:37:13 compiz
saml 18208 1.7 1.3 1081132 108828 ? Sl Aug27 00:32:02 chrome
最低から最高の%CPUプロセスのリスト:
$ ps ax --no-headings -o user,pid,%cpu,%mem,vsz,sgi_rss,tname,stat,start_time,time,ucmd |sort -nk 3|tail -10
saml 18208 1.7 1.3 1082156 108348 ? Sl Aug27 00:32:03 chrome
saml 2389 2.0 0.1 330632 8492 ? Sl Aug21 03:37:15 compiz
saml 18528 2.7 3.1 1181440 250856 ? Sl Aug27 00:50:58 chrome
saml 18314 3.6 1.5 1050044 119828 ? Sl Aug27 01:06:25 chrome
saml 18174 7.3 3.0 1167728 242068 ? Sl Aug27 02:14:32 chrome
root 1764 7.7 0.3 163688 28716 tty1 Ss+ Aug21 13:40:26 Xorg
saml 18543 10.9 3.8 1235060 305464 ? Sl Aug27 03:20:32 chrome
saml 18558 12.2 3.5 1214832 283560 ? Sl Aug27 03:44:34 chrome
saml 18536 14.7 3.9 1267024 314400 ? Sl Aug27 04:29:39 chrome
saml 18086 114 6.4 1412992 514856 ? Sl Aug27 1-10:55:28 chrome