免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5306 | 回复: 19
打印 上一主题 下一主题

[文本处理] 请教如果在shell里执行SQL命令并将结果截取出来 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-09-04 00:11 |只看该作者 |倒序浏览
需要起一个cron job然后每2小时执行一次Shell脚本....
脚本是用oracle用户,然后执行SQL命令....将结果截取后分析...

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
2 [报告]
发表于 2013-09-04 00:36 |只看该作者
你把要执行的SQL命令放在一个脚本中不就可以了吗?

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
3 [报告]
发表于 2013-09-04 09:23 |只看该作者
db都有一个命令行工具可以指定输出吧
也许是用shell重定向,这种少见

论坛徽章:
0
4 [报告]
发表于 2013-09-05 12:34 |只看该作者
流氓无产者 发表于 2013-09-04 09:23
db都有一个命令行工具可以指定输出吧
也许是用shell重定向,这种少见


小弟起了這個腳本,但沒法輸出ASM_alert.txt.....
#!/bin/sh
su - oracle -c "sqlplus / as sysdba << EOF
set feedback off;
set heading off;
set echo off;
set term off;
set linesize 255;
set pagesize 200;
spool /tmp/ASM_percentage.txt;
select name,ROUND(100 * (((total_mb/1024) - (free_mb/1024)) / (total_mb/1024)),2) from v\\\$asm_diskgroup;
spool off;
quit

FRADGPCT=`cat /tmp/ASM_percentage.txt | grep MPDB_FRADG | grep -v grep | awk '{ print $2 }'`
if [ "$FRADGPCT" -gt 10 ]; then
echo "the size is over"  >> /tmp/ASM_alert.txt
fi
EOF

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2013-09-05 14:17 |只看该作者
回复 4# bowmanleong


    把EOF上面的四行放到EOF下面试试

论坛徽章:
1
技术图书徽章
日期:2013-09-25 21:06:29
6 [报告]
发表于 2013-09-05 14:27 |只看该作者
同样想到的是spool 到一个临时文件, 然后从临时文件中获得这个数据~

论坛徽章:
0
7 [报告]
发表于 2013-09-05 14:55 |只看该作者
Shell_HAT 发表于 2013-09-05 14:17
回复 4# bowmanleong

已經試過了,能生成ASM_alert.txt...但里面是空的....不知道發生什麼事了

現在腳本是這樣,ASM_alert.txt里還是空的:
su - oracle -c "sqlplus / as sysdba << EOF
set feedback off;
set heading off;
set echo off;
set term off;
set linesize 255;
set pagesize 200;
spool /tmp/ASM_percentage.txt;
select name,ROUND(100 * (((total_mb/1024) - (free_mb/1024)) / (total_mb/1024)),2) from v\\\$asm_diskgroup;
spool off;
quit
EOF
#FRADGPCT=`cat /tmp/ASM_percentage.txt | grep MPDB_FRADG | grep -v grep | awk '{ print $2 }'`
FRADGPCT="123"
echo "$FRADGPCT"  >> /tmp/ASM_alert.txt



论坛徽章:
0
8 [报告]
发表于 2013-09-05 15:08 |只看该作者
yuloveban 发表于 2013-09-05 14:27
同样想到的是spool 到一个临时文件, 然后从临时文件中获得这个数据~

spool好像只用在SQL里面吧?...而且我之後還有做比較....如果大於某個數就會通知....這些spool好像都做不到

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2013-09-05 15:08 |只看该作者
回复 7# bowmanleong


手工执行一下,看看执行过程。
  1. bash -vx test.sh
复制代码

论坛徽章:
0
10 [报告]
发表于 2013-09-05 15:25 |只看该作者
回复 9# Shell_HAT

bash -vx /tmp/ASM_checking.sh

#!/BIN/SH
su - oracle -c "sqlplus / as sysdba <<EOF
set feedback off;
set heading off;
set echo off;
set term off;
set linesize 255;
set pagesize 200;
spool /tmp/ASM_percentage.txt;
select name,ROUND(100 * (((total_mb/1024) - (free_mb/1024)) / (total_mb/1024)),2) from v\\\$asm_diskgroup;
spool off;
quit
EOF
#FRADGPCT=`cat /tmp/ASM_percentage.txt | grep MPDB_FRADG | grep -v grep | awk '{ print $2 }'`
FRADGPCT="123"
echo "$FRADGPCT" >> /tmp/ASM_alert.txt
/tmp/ASM_checking.sh: line 16: unexpected EOF while looking for matching `"'
/tmp/ASM_checking.sh: line 17: syntax error: unexpected end of file
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP