LINUX下kill掉多個類似程式的妙招
工作中經常需要Kill多個程式,如果這些程式有共同的特點,就可以用一條命令Kill掉它們。比如清除Oracle資料庫的所有遠端連線程式:
9802 122-13:54:36 xxx (LOCAL=NO)
11547 126-19:48:23 xxx (LOCAL=NO)
13016 101-20:48:45 xxx (LOCAL=NO)
19104 124-21:08:27 xxx (LOCAL=NO)
20515 105-15:35:56 xxx (LOCAL=NO)
ps -efww|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。下面說說用管道符聯接起來的幾個命令:
“ps -efww”是檢視所有程式的命令。這時檢索出的程式將作為下一條命令“grep LOCAL=NO”的輸入。
“grep LOCAL=NO”的輸出結果是,所有含有關鍵字“LOCAL=NO”的程式,這是Oracle資料庫中遠端連線程式的共同特點。
“grep -v grep”是在列出的程式中去除含有關鍵字“grep”的程式。
“cut -c 9-15”是擷取輸入行的第9個字元到第15個字元,而這正好是程式號PID。
“xargs kill -9”中的xargs命令是用來把前面命令的輸出結果(PID)作為“kill -9”命令的引數,並執行該命令。“kill -9”會強行殺掉指定程式,這樣就成功清除了oracle的所有遠端連線程式。其它類似的任務,只需要修改“grep LOCAL=NO”中的關鍵字部分就可以了。
也可以使用AWK來做這樣的事情
呵呵,經過一番努力終於寫了一條命令來殺掉執行超過7天的程式:
9802 122-13:54:36 xxx (LOCAL=NO)
11547 126-19:48:23 xxx (LOCAL=NO)
13016 101-20:48:45 xxx (LOCAL=NO)
19104 124-21:08:27 xxx (LOCAL=NO)
20515 105-15:35:56 xxx (LOCAL=NO)
ps -e -o pid -o etime -o args|grep LOCAL=NO|grep -| \
awk '{ if (int(substr($2,1,index($2,"-")-1))>7) {print $1;} }'| \
xargs kill -9
ps: 其實,這麼寫也是可以的,有興趣的同學可以當作學學awk語法羅:
ps -e -o pid -o etime -o args|grep LOCAL=NO|grep -| \
awk '{ split($2,arr,"-"); if (arr[1]>7) {print $1;} }'| \
xargs kill -9
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16978544/viewspace-691923/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下Kill多個程式的妙招Linux
- linux Kill多個程式的妙招--案例:Kill(LOCAL=NO)Linux
- Linux下批量Kill多個程式的方法Linux
- [轉載]Linux下批量Kill多個程式(oracle)LinuxOracle
- Linux下kill一個程式Linux
- linux下批次kill程式的方法Linux
- 一次 Kill 多個程式
- kill掉 mysql 大量鎖表程式MySql
- linux 下根據埠kill 程式Linux
- Linux下批次殺掉 包含某個關鍵字的 程式程式Linux
- Linux, AIX系統下批量kill程式LinuxAI
- linux中檢視oracle程式在做什麼,是否sql引起了鎖 kill掉程式LinuxOracleSQL
- Pants:類似Maven但支援多個語言的構建Maven
- 【實驗】【VNC】手工kill掉VNC程式的故障處理VNCC程式
- 在linux下oracle kill 使用者程式的方法LinuxOracle
- 檢視長時間鎖定物件的程式,並kill掉物件
- Crontab自動執行指令碼Kill掉MySQL的僵死程式指令碼MySql
- Windows下kill oracle程式WindowsOracle
- linux 檢視程式 kill程式Linux
- HP-UNIX下如何使用類似Linux的tab帶出整個檔名稱功能Linux
- ORACLE快速徹底Kill掉的會話Oracle會話
- linux批量殺掉程式linux批量殺掉程式Linux
- linux下kill命令小結Linux
- clover 一個windows 多個視窗集中在一個介面類似google的多標籤功能軟體WindowsGo
- 如何使程式不被360軟體Kill掉?(解決方案)
- 一個TextView設定多種格式(類似於“評論”的樣式)TextView
- 誰能提供一個開源的下載庫 類似於FlashGet
- 類似資料字典的幾個表
- 如何殺掉一個使用者下的所有程式並drop掉這個使用者
- 做一個類似賽博賞小程式大概多少錢
- (整合)Linux下的多程式程式設計Linux程式設計
- SOLARIS下的Package安裝(包括直接網上安裝,類似linux的YUM)PackageLinux
- 使用VuePress搭建一個類似element的文件Vue
- Kill掉MySQL中所有sleep的client執行緒MySqlclient執行緒
- kill某個使用者的所有程式
- 請教:vim選中多個單詞,類似 vscode 的ctrl+dVSCode
- linux kill -9 的記錄,批量殺程式Linux
- 畫江湖之 PHP 多程式開發 【通過訊號寫一個類似 nginx services 服務】PHPNginx