对 某个等待事件进行监控,发现之后就杀掉,特此记录
[oracle@testora ~]$ cat monitor_kksfbc.sh
#!/bin/sh
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
while [ true ]
do
$ORACLE_HOME/bin/sqlplus -S "/as sysdba" @sp << EOF
EOF
if [ `cat kill_kksfbc.sh|wc -l` -gt 0 ]
then
sh kill_kksfbc.sh
cp kill_kksfbc.sh ./ak_log/kill_kksfbc.sh.`date +%b_%d_%H_%M_%S`
>kill_kksfbc.sh
fi
sleep 60
done
[oracle@testora ~]$ ls sp.sql
sp.sql
[oracle@testora ~]$ cat sp.sql
set feedback off
set termout off;
ttitle off;
btitle off;
set heading off
set timing off;
set verify off;
set echo off;
spool kill_kksfbc.sh
select 'kill -9 '|| spid from v$session s,v$process p where s.paddr=p.addr and s.event='SQL*Net message from client' and s.username is not null and s.username <>'SYS';
spool off
[oracle@testora ~]$ mkdir ak_log
---查看权限
[oracle@testora ~]$ ll
total 24
drwxr-xr-x 2 oracle oinstall 4096 Aug 12 11:01 ak_log
-rwx------ 1 oracle oinstall 0 Aug 12 14:15 kill_kksfbc.sh
-rwx------ 1 oracle oinstall 298 Aug 12 10:30 monitor_kksfbc.sh
-rw-r--r-- 1 oracle oinstall 0 Aug 12 10:45 monitor_kksfbc.sh.out
-rwxr-xr-x 1 oracle oinstall 319 Aug 12 11:01 sp.sql
[oracle@testora ~]$ nohup monitor_kksfbc.sh>monitor_kksfbc.sh.out &
--查看作业
[oracle@testora ~]$ jobs
SQL> grant dba to test identified by test;
授权成功。
SQL> conn test/test
已连接。
--过一分钟去查看ak_log
[oracle@testora ~]$ cd ak_log/
[oracle@testora ak_log]$ ls
kill_kksfbc.sh.Aug_12_11_01_49
[oracle@testora ak_log]$ cat kill_kksfbc.sh.Aug_12_11_01_49
kill -9 3421