这个脚本怎么都执行不了 osw.sh

panweiwebweb 2007-12-06 05:07:55
脚本内容


——————————————————————————————————————————————————————
#! /bin/ksh

CURRTIME=`date +%m%d_%H%M`
CURRDIR=`pwd`

seswait()
{
sqlplus -s /nolog <<HERE
connect / as sysdba
set pages 0
select '=== Session Wait Start: '||to_char(sysdate, 'DD/MM/YYYY HH24:MI:SS') from
dual;

set trims on echo off termout off lines 1050 wrap off feedback off recsep off
set pagesize 1000
col sid format 9999
column state format a7 tru
column event format a25 tru
column last_sql format a1000 tru
column seconds format 9999
column username format a8

break on event skip 1
compute count label "# of rows" of sid on event

-- select /*+ ordered */ sw.event, sw.inst_id, sw.sid, sw.state,
-- sw.seconds_in_wait seconds, sw.p1, sw.p2, sw.p3, sa.sql_text last_sql
-- from gv\$session_wait sw, gv\$session s, gv\$sql sa
-- where sw.event not in ('rdbms ipc message','smon timer','pmon timer',
-- 'SQL*Net message from client','SQL*Net message to client',
-- 'lock manager wait for remote message',
-- 'ges remote message', 'client message', 'SQL*Net more data from client',
-- 'pipe get', 'Null event', 'PX Idle Wait', 'single-task message',
-- 'wakeup time manager')
-- and s.username='PROJ_97'
-- and (sw.inst_id = s.inst_id and sw.sid = s.sid)
-- and (s.inst_id = sa.inst_id and s.sql_address = sa.address)
-- order by sw.event,sw.inst_id,sw.sid;

select /*+ ordered */ distinct sw.event, sw.sid,
s.KSUUDNAM username, s.KSUSEPNM program,
-- sw.state, sw.seconds_in_wait seconds,
sw.state, sw.wait_time seconds,
sw.p1, sw.p2, sw.p3, sa.kglnaobj last_sql
from v\$session_wait sw, x\$ksuse s, x\$kglob sa
where sw.event not in ('rdbms ipc message','smon timer','pmon timer',
'SQL*Net message from client','SQL*Net message to client',
"osw.sh" [dos] 72L, 2382C 已写入
[oracle@As1 oracle]$ ls
admin dm.dmp expdat.dmp jre nm.log osw_1206_1601.log osw_1206_1610.log product
afiedt.buf dm.log exp.log log oradata osw_1206_1606.log osw.sh tccs.dmp
bak doc exp_tccs.log nm.dmp oraInventory osw_1206_1608.log oui tccs.log
[oracle@As1 oracle]$ vi osw.sh

#! /bin/ksh

CURRTIME=`date +%m%d_%H%M`
CURRDIR=`pwd`

seswait()
{
sqlplus -s /nolog <<HERE
connect / as sysdba
set pages 0
select '=== Session Wait Start: '||to_char(sysdate, 'DD/MM/YYYY HH24:MI:SS') from
dual;

set trims on echo off termout off lines 1050 wrap off feedback off recsep off
set pagesize 1000
col sid format 9999
column state format a7 tru
column event format a25 tru
column last_sql format a1000 tru
column seconds format 9999
column username format a8

break on event skip 1
compute count label "# of rows" of sid on event

-- select /*+ ordered */ sw.event, sw.inst_id, sw.sid, sw.state,
-- sw.seconds_in_wait seconds, sw.p1, sw.p2, sw.p3, sa.sql_text last_sql
-- from gv\$session_wait sw, gv\$session s, gv\$sql sa
-- where sw.event not in ('rdbms ipc message','smon timer','pmon timer',
-- 'SQL*Net message from client','SQL*Net message to client',
-- 'lock manager wait for remote message',
-- 'ges remote message', 'client message', 'SQL*Net more data from client',
-- 'pipe get', 'Null event', 'PX Idle Wait', 'single-task message',
-- 'wakeup time manager')
-- and s.username='PROJ_97'
-- and (sw.inst_id = s.inst_id and sw.sid = s.sid)
-- and (s.inst_id = sa.inst_id and s.sql_address = sa.address)
-- order by sw.event,sw.inst_id,sw.sid;

select /*+ ordered */ distinct sw.event, sw.sid,
s.KSUUDNAM username, s.KSUSEPNM program,
-- sw.state, sw.seconds_in_wait seconds,
sw.state, sw.wait_time seconds,
sw.p1, sw.p2, sw.p3, sa.kglnaobj last_sql
from v\$session_wait sw, x\$ksuse s, x\$kglob sa
where sw.event not in ('rdbms ipc message','smon timer','pmon timer',
'SQL*Net message from client','SQL*Net message to client',
'lock manager wait for remote message',
'ges remote message', 'client message', 'SQL*Net more data from client',
'pipe get', 'Null event', 'PX Idle Wait', 'single-task message',
'wakeup time manager','null event')
and s.KSUUDNAM<>'SYS'
and (sw.sid = s.KSUSENUM)
and (s.KSUSESQH = sa.KGLNAHSH)
order by sw.event,sw.sid;

set pagesize 0
select '=== Session Wait Done:'||to_char(sysdate, 'DD/MM/YYYY HH24:MI:SS')
from dual;
select '########################################################' from dual;
select ' ' from dual;
select ' ' from dual;

HERE
}
while [ 1 ];
do
# seswait
# seswait 2>&1 | tee -a $CURRDIR/osw_$CURRTIME.log
seswait 2>&1
sleep 15
done
——————————————————————————————————————————————————


在LINUX上用 ksh osw.sh
'sw.sh: line 6: syntax error near unexpected token `

请大家帮忙
'sw.sh: line 6: `seswait()
...全文
46 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧