免费注册 查看新帖 |

Chinaunix

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

crontab 中自动调用SHELL 读取DB2数据的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-31 16:48 |只看该作者 |倒序浏览
今日需要在LINUX中自动调用一个SHELL 脚本,但出现错误,改脚本手动执行,都能正确运行,内容如下:

########################################
. ~/.bash_profile

chksqlrtn()
{
        echo "      RETURN CODE=$1"
        if [ $1 -ne 0  -a $1 -ne 1 -a $1 -ne 2 ]
        then
                echo "      ERROR!RETURN CODE=$1"
                exit $1
        fi
}

#(1)、连接数据库
echo "连接数据库 DATABASE ... "
db2 +o connect to DATABASE
chkrtn $?


sql="select a1,a2,a3   from TABLE "
#以上TABLE中固定只有一条记录

  res=`db2 -x $sql`
  chkrtn $?
  set -- $res

  AAA=$1
  BBB=$2
  CCC=$3

#(7)  关闭数据库
db2 +o terminate
chkrtn $?

exit 0
##########################

自动调用运行时,连接数据库都可以正常执行,但到  res=`db2 -x $sql` 句是出现错误, ERROR!RETURN CODE=4

请高人帮忙看看,我需要怎么处理才可以。万分感谢

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2011-08-31 17:04 |只看该作者
会不会是环境变量的问题?没用过db2,以前做tomcat服务的时候,脚本里面有写java环境变量的.
建议楼主在好用的时候,输出当前环境下的环境变量到一个文件;crontab任务写一个脚本,. ~/.bash_profile行要,脚本头部写#!/bin/bash测试下.

论坛徽章:
0
3 [报告]
发表于 2011-08-31 17:27 |只看该作者
环境变量应该没问题吧,我手工调用可以正常运行,自动调用的时候,CONNECT 数据库也可以正确执行,只是在读取数据的时候报告错误

论坛徽章:
0
4 [报告]
发表于 2011-09-05 12:57 |只看该作者
有人帮忙看看没,谢谢了

论坛徽章:
0
5 [报告]
发表于 2011-09-15 10:22 |只看该作者

论坛徽章:
0
6 [报告]
发表于 2011-09-15 10:50 |只看该作者
回复 1# lw_icbc


  path  和  DB2环境变量 也加进脚本去试试

论坛徽章:
0
7 [报告]
发表于 2011-09-16 12:27 |只看该作者
我把这句 res=`db2 -x $sql`
换成  db2 -x $sql 就可以执行,但我不知道怎么取得读出的数据。

论坛徽章:
0
8 [报告]
发表于 2011-09-16 12:44 |只看该作者
哦,还有,那个脚本在命令行是可以正确执行的,但放到自动调用里面,就抱错误,而直接写 db2 -x $sql 自动调用也可以正确运行

论坛徽章:
0
9 [报告]
发表于 2011-09-16 13:12 |只看该作者
多半是环境变量和命令路径的问题

脚本直接运行和放在crontab里面, 主要差别就是crontab不能获取环境变量

把含有环境变量定义的profile都放到crontab脚本里source试试吧

还有db2等命令也最好用全路径
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP