免费注册 查看新帖 |

Chinaunix

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

手工执行一个shell没问题,换成用crontab定时执行就不行,为什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-05 18:18 |只看该作者 |倒序浏览
本人写了一个shell,shell文件名为execbat.sh,保存路径为:/export/home/stsuser\r\nsehll文件内容如下:\r\n------------------------------------------------\r\n#!/bin/sh \r\ncd /export/home/stsuser/nas/dts\r\n./data_bat\r\n------------------------------------------------\r\nshell的目的,我想先进入目录/export/home/stsuser/nas/dts\r\n然后执行此目录下的程序data_bat\r\n\r\n现在用手工执行,使用用户stsu,telnet登录系统,先进入目录/export/home/stsuser\r\n直接运行shell文件./execbat.sh\r\ndata_bat程序可以可以正常执行,\r\n\r\n现在改用crontab定时执行,使用用户stsu,telnet登录系统,crontab中加入如下任务:\r\n25 18 * * * /export/home/stsuser/execbat.sh\r\n\r\n\r\n说明一下,程序data_bat是pro*c程序,由data_bat.pc文件编译而成的可执行文件,\r\n文件内容如下的形式:\r\n------------------------------------------------------------------------------------------\r\n#include <stdio.h>\r\n#include <string.h>\r\n.....\r\n#include <sqlca.h>\r\n\r\nmain()\r\n{\r\n        char db_username[10];\r\n        char db_passwd[10];\r\n        memset(db_username,0,sizeof(db_username));\r\n        memset(db_passwd,0,sizeof(db_passwd));\r\n        \r\n        /*读配置文件得到数据库用户名及密码*/\r\n        ReadCfgFile(\"scfgfile.cfg\",\"dbusername\",db_username);\r\n        ReadCfgFile(\"scfgfile.cfg\",\"dbpaswd\",db_passwd);\r\n        \r\n        EXEC SQL CONNECT :db_username IDENTIFIED by :db_passwd;\r\n        if ( sqlca.sqlcode != 0 )\r\n        {\r\n                printf(\"connect database error. errcode[%d]\",sqlca.sqlcode);\r\n                return -1;\r\n        }\r\n        \r\n        /*其他处理语句*/\r\n        .......\r\n        \r\n        \r\n        EXEC SQL COMMIT WORK RELEASE;\r\n        return 0;\r\n}\r\n------------------------------------------------------------------------------------------\r\n当用定时任务时,在连接数据库时,出现如下错误信息:\r\nconnect database error. errcode[-12545]\r\n\r\n本人查询了错误:\r\nORA-12545: Connect failed because target host or object does not exist \r\nCause: The address specified is not valid, or the program being connected to does not exist. \r\n\r\n看了错误,本人改了data_bat.pc代码,数据库连接处改成如下:\r\n-------------------------------------------------------------------------------\r\nEXEC SQL BEGIN DECLARE SECTION;\r\n        VARCHAR  uid[200];\r\nEXEC SQL END DECLARE SECTION;\r\n\r\nmain()\r\n{\r\n        char cnnstr[128];\r\n        memset(cnnstr,0,sizeof(cnnstr));\r\n        \r\n        strcpy(cnnstr,\"admin/nas4321@nasdat\");\r\n        strcpy ((char *)uid.arr,cnnstr);\r\n        uid.len=(unsigned short)strlen((char *)uid.arr);\r\n        EXEC SQL CONNECT :uid;\r\n        if ( sqlca.sqlcode != 0 )\r\n        {\r\n                printf(\"connect database error. errcode[%d]\",sqlca.sqlcode);\r\n                return -1;\r\n        }\r\n        \r\n        /*其他处理语句*/\r\n        .......\r\n        \r\n-------------------------------------------------------------------------------\r\n可用crontab定时执行还是有错:\r\nconnect database error. errcode[-12154]\r\n\r\n\r\n本人百思不得其解,相同的用户,为何使用手工直接执行就没有任务问题,换成\r\ncrontab就会出问题,恳请高人指点,这是怎么了,如何解决?谢谢!\r\n\r\n对了,系统为:\r\nSunOS nas.sz.gmcc.net 5.8 Generic_117350-25 sun4u sparc SUNW,Sun-Fire
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP