2008年11月27日
psでプロセス毎のCPU使用率、スレッド数、メモリ使用率、物理メモリサイズ、仮想メモリサイズを出力
psでプロセス毎のCPU使用率、スレッド数、メモリ使用率、物理メモリサイズ、仮想メモリサイズを出力
$ ps -p [PID] -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args
プロセスのコマンドの文字列でgrepする場合
$ ps -A -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args | egrep 'ptn'
監視したいときは以下のようなシェルを組む。
#!bin/sh
PID=$1
INTERVAL=10
while true
do
ps -p ${PID} --no-headers -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args
sleep ${INTERVAL}
done
シェルを組むのも面倒な時は、shになってからコマンドラインで実行。
$ sh
$ while true; do ps -p [PID] --no-headers -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args;sleep 10; done
$ ps -p [PID] -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args
プロセスのコマンドの文字列でgrepする場合
$ ps -A -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args | egrep 'ptn'
監視したいときは以下のようなシェルを組む。
#!bin/sh
PID=$1
INTERVAL=10
while true
do
ps -p ${PID} --no-headers -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args
sleep ${INTERVAL}
done
シェルを組むのも面倒な時は、shになってからコマンドラインで実行。
$ sh
$ while true; do ps -p [PID] --no-headers -o pid,ppid,user,etime,time,pcpu,nlwp,vsz,rss,pmem,args;sleep 10; done
ラベル: LINUX
psをgrepした結果にgrep自身のプロセスを出力させない
psの結果をgrepした結果にgrep自身のプロセスを出力させない方法。
以下、httpdのプロセスを出力させる場合。
# grepの-vオプションを使う
$ ps aux | egrep 'httpd' | egrep -v 'grep'
# 検索文字列に文字クラスを使用してgrepの結果にかからなくする
# ps aux | egrep '[h]ttpd'
以下、httpdのプロセスを出力させる場合。
# grepの-vオプションを使う
$ ps aux | egrep 'httpd' | egrep -v 'grep'
# 検索文字列に文字クラスを使用してgrepの結果にかからなくする
# ps aux | egrep '[h]ttpd'
ラベル: LINUX
2008年11月14日
awk 1ライナー 列の抜き出し
空白やタブ等で区切られたテキストデータ列の抜き出しには、cutコマンドやawkやperlの1ライナーが便利です。
以下はawkでの実例
# "aaa bbb ccc"の1列目のみを出力する。
$ echo "aaa bbb ccc" | awk '{ print $1 }'
aaa
# "aaa bbb ccc"の2列目のみを出力する。
$ echo "aaa bbb ccc" | awk '{ print $2 }'
bbb
# "aaa bbb ccc"の1,2列目を:(コロン)区切りで出力する。
$ echo "aaa bbb ccc" | awk '{ print $1,":",$2 }'
aaa : bbb
# "aaa,bbb,ccc",(カンマ区切り)の1列のみを出力する。
$ echo "aaa,bbb,ccc" | awk -F',' '{ print $1 }'
aaa
# ps au の結果の2列目(PID)のみを出力する。
$ ps au | awk '{ print $2 }'
PID
XXXXX
XXXXX
XXXXX
同様のことはPerlの1ライナーでも可能です。
Perlの1ライナーについては以下コンテンツへ
Perl ワンライナー 勉強中。
以下はawkでの実例
# "aaa bbb ccc"の1列目のみを出力する。
$ echo "aaa bbb ccc" | awk '{ print $1 }'
aaa
# "aaa bbb ccc"の2列目のみを出力する。
$ echo "aaa bbb ccc" | awk '{ print $2 }'
bbb
# "aaa bbb ccc"の1,2列目を:(コロン)区切りで出力する。
$ echo "aaa bbb ccc" | awk '{ print $1,":",$2 }'
aaa : bbb
# "aaa,bbb,ccc",(カンマ区切り)の1列のみを出力する。
$ echo "aaa,bbb,ccc" | awk -F',' '{ print $1 }'
aaa
# ps au の結果の2列目(PID)のみを出力する。
$ ps au | awk '{ print $2 }'
PID
XXXXX
XXXXX
XXXXX
同様のことはPerlの1ライナーでも可能です。
Perlの1ライナーについては以下コンテンツへ
Perl ワンライナー 勉強中。
ラベル: LINUX
スポンサードリンク
