使用awk批次殺程式的命令

luashin發表於2016-04-01
在做系統運維的過程中,有時候會碰到需要殺掉某一類程式的時候,如何批次殺掉這些程式,使用awk命令是很好的選擇。
ps -ef|grep aaa|grep -v grep|awk '{print "kill -9" $2}' |sh

1.ps -ef|grep aaa|grep -v grep這是大家很熟悉的命令,這裡就不再多說,就是從當前系統執行的程式的程式名中包含aaa關鍵字的程式。
2.後面部分就是awk命令了,一般awk命令的格式為:awk 'pattern {action}'
print是列印,kill -9 是強制停止程式的命令, $2就是前面有ps -ef命令得出的結果的第二列上顯示的內容。

下面舉一個簡單的例子:
[PD_APP1:/home/tbcs]# ps -ef|grep boco|grep -v grep
    root  9884  9883  0 17:10:01 ?        0:00 sendmail -oem -oi -froot boco
    root  9883  9880  0 17:10:01 ?        0:00 /usr/bin/mail boco
    boco 11112    1  0  Dec 24  ?        0:00 ./boco_appmaster -d /home/boco/agent
    boco 11126 11125 61  Dec 24  ?        52:59 ./boco_hostagent -i socket -l
    boco 11125 11112 37  Dec 24  ?        43:25 ./boco_appmaster -d /home/boco/agent
    boco  9811 11113  0 17:09:31 ?        0:00 sleep 60
    boco 11113    1  0  Dec 24  ?        0:23 /bin/sh ./boco_monitor.sh
[PD_APP1:/home/tbcs]# ps -ef|grep boco|grep -v grep|awk '{print "kill -9" $2}'
kill -9 9884
kill -9 9883
kill -9 11112
kill -9 11126
kill -9 11125
kill -9 9811
kill -9 11113
可以看出,ps -ef|grep boco|grep -v grep列出了當前主機中執行的程式中包含boco關鍵字的程式
而ps -ef|grep boco|grep -v grep|awk '{print "kill -9" $2}'則列出了要kill掉這些程式的命令,並將之列印在了螢幕上
在ps -ef|grep boco|grep -v grep|awk '{print "kill -9" $2}'後面加上|sh後,則執行這些命令,進而殺掉了這些程式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9034054/viewspace-2073940/,如需轉載,請註明出處,否則將追究法律責任。

相關文章