命令:
ps -ef|grep "ora_"|grep -v grep|awk '{ print $2 }'|xargs kill –9
乍看这条命令,给人很复杂神秘的感觉。然而,这实际上是通过管道符(|)来合在一起的一组简单命令。写成下面的格式更易懂一些:
ps -ef
|
grep "ora_"
|
grep -v grep
|
awk '{ print $2 }'
|
xargs kill –9
这条命令总的目的是杀掉所有Oracle的进程。ps –ef 列出所有的进程,而grep "ora_" 只列出ps –ef中的ora_开头的进程;grep –v grep的作用是进程中不列出命令本身,awk '{ print $2 }'的作用是只列出显示的进程的第2部分。xargs 将前面列出的内容传给后面的命令,kill –9命令会强制关闭列出来的进程。
为了更好的理解这条命令,我们不妨逐步执行这个命令,查看输出结果:
HBZW> ps -ef
UID PID PPID C STIME TTY TIME CMD
root 0 0 1.2 13:48:38 ?? 0:36.18 [kernel idle]
root 1 0 0.0 13:48:38 ?? 0:00.05 /sbin/init -a
root 3 1 0.0 13:48:39 ?? 0:00.02 /sbin/kloadsrv
root 5 1 0.0 13:48:40 ?? 0:00.00 /sbin/hotswapd
root 53 1 0.0 13:48:56 ?? 0:00.00 /sbin/update
root 170 1 0.0 13:49:00 ?? 0:00.16 /usr/sbin/evmd
......
oracle 2445 1 0.0 14:48:35 ?? 0:00.36 ora_ckpt_gaxz
oracle 2447 1 0.0 14:48:35 ?? 0:00.38 ora_smon_gaxz
oracle 2449 1 0.0 14:48:36 ?? 0:00.07 ora_reco_gaxz
oracle 2451 1 0.0 14:48:36 ?? 0:00.19 ora_cjq0_gaxz
oracle 2453 1 0.0 14:48:36 ?? 0:02.20 ora_qmn0_gaxz
oracle 2455 1 0.0 14:48:36 ?? 0:00.06 ora_s000_gaxz
oracle 2457 1 0.0 14:48:36 ?? 0:00.07 ora_d000_gaxz
…..
HBZW> ps -ef|grep "ora_"
oracle 2439 1 0.0 14:48:35 ?? 0:00.08 ora_pmon_gaxz
oracle 2441 1 0.0 14:48:35 ?? 0:00.09 ora_dbw0_gaxz
oracle 2443 1 0.0 14:48:35 ?? 0:00.11 ora_lgwr_gaxz
oracle 2445 1 0.0 14:48:35 ?? 0:00.40 ora_ckpt_gaxz
oracle 2447 1 0.0 14:48:35 ?? 0:00.40 ora_smon_gaxz
oracle 2449 1 0.0 14:48:36 ?? 0:00.07 ora_reco_gaxz
oracle 2451 1 0.0 14:48:36 ?? 0:00.23 ora_cjq0_gaxz
oracle 2453 1 0.0 14:48:36 ?? 0:02.46 ora_qmn0_gaxz
oracle 2455 1 0.0 14:48:36 ?? 0:00.06 ora_s000_gaxz
oracle 2457 1 0.0 14:48:36 ?? 0:00.07 ora_d000_gaxz
oracle 2530 2310 0.0 15:10:56 pts/1 0:00.00 grep ora_
HBZW> ps -ef|grep "ora_"|grep -v grep
oracle 2439 1 0.0 14:48:35 ?? 0:00.08 ora_pmon_gaxz
oracle 2441 1 0.0 14:48:35 ?? 0:00.09 ora_dbw0_gaxz
oracle 2443 1 0.0 14:48:35 ?? 0:00.11 ora_lgwr_gaxz
oracle 2445 1 0.0 14:48:35 ?? 0:00.41 ora_ckpt_gaxz
oracle 2447 1 0.0 14:48:35 ?? 0:00.40 ora_smon_gaxz
oracle 2449 1 0.0 14:48:36 ?? 0:00.07 ora_reco_gaxz
oracle 2451 1 0.0 14:48:36 ?? 0:00.24 ora_cjq0_gaxz
oracle 2453 1 0.0 14:48:36 ?? 0:02.53 ora_qmn0_gaxz
oracle 2455 1 0.0 14:48:36 ?? 0:00.06 ora_s000_gaxz
oracle 2457 1 0.0 14:48:36 ?? 0:00.07 ora_d000_gaxz
HBZW> ps -ef|grep "ora_"|grep -v grep|awk '{ print $2 }'
2439
2441
2443
2445
2447
2449
2451
2453
2455
2457
from :《Oracle DBA 的 UNIX 袖珍参考手册》中文版
举一反三,凡是用到查看的有多列状态的的命令都可以如此搞定...
阅读(1714) | 评论(1) | 转发(0) |