- 论坛徽章:
- 0
|
如下是在solaris执行成功的运维脚本,但是移植到redhat却出错了,详见No.2,请问如何解决?
1。solaris执行成功的运维脚本
-bash-3.00$ cat topPID_prstat.sh
#!/usr/bin/bash
num=1
day=`date +%Y%m%d`
day1=`date +%Y%m%d%H%M`
while [ $num -lt 8 ]
do
ltime=`date +%H:%M:%S`
second=`date +%S`
var_pid=`prstat -a 1 1|sed -n "2p"|awk '{print $1;}'`
cputotal=`prstat -a 1 1|sed -n "2p"|awk '{print $1,$9;}'`
#echo $var_pid;
sqlplus -S abc/abc@abc <<EOF
conn / as sysdba;
set heading off;
set serveroutput off;
set linesize 400;
set pagesize 5000;
set trimspool on;
SELECT to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),sql_text FROM v\$sqltext a WHERE (a.hash_value, a.address) IN
(SELECT DECODE (sql_hash_value,0, prev_hash_value,sql_hash_value),DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)FROM v\$session b
WHERE b.paddr = (SELECT addr FROM v\$process c WHERE c.spid =$var_pid))ORDER BY piece ASC;
EXIT
EOF
echo $ltime $cputotal >> /export/home/beiman/Monitor_TopPID/$day.cpu-mem.log
let num+=1;
sleep 1;
done
2。redhat执行出错信息如下:
[oracle@itms-sjz-db-4 Monitor]$ ./topPID_prstat.sh
WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid=12345))
*
ERROR at line 4:
ORA-00920: invalid relational operator |
|