免费注册 查看新帖 |

Chinaunix

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

手动运行正常的shell在crontab里调用时出错了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-01-14 15:38 |只看该作者 |倒序浏览
各位高手,请帮我看看。
我有如下shell脚本

1. refresh_all,里面调用另外一个shell refresh_schema
opserdb>cat refresh_all
#!/usr/bin/bash
ORACLE_SID=perdb                           ; export ORACLE_SID
......
/erdb/bin/refresh_schema EDENFR edenfr_2004 EWRFRMASTER ewrfrmaster

2. refresh_schema里面再调用另外一个shell refresh_table
opserdb>cat refresh_schema
...
  elif [ $OBJECT_TYPE = "T" ]; then
    SQL_FILE=${OBJECT_NAME}_fr.sql
    /erdb/bin/refresh_table $SQL_FILE $SCHEMA $SCHEMA_PASS
...

3. refresh_table根据传入的三个参数去刷新一张表

一般运行时,只要运行$refresh_all就可以,而且手动运行时都是正确的。可是
在crontab里调用refresh_all:
30 05 * * 1,2,3,4,5 /erdb/bin/refresh_all

运行时就出现错误:
opserdb>mail
......
produced the following output:

/erdb/bin/refresh_table: test: argument expected
/erdb/bin/refresh_table: test: argument expected
...

请问大家碰到过这种问题吗?该如何解决?
欢迎任何建议,谢谢大家先!

论坛徽章:
0
2 [报告]
发表于 2005-01-14 16:29 |只看该作者

手动运行正常的shell在crontab里调用时出错了

elif [ $OBJECT_TYPE = "T" ]; then
--〉
elif [ "$OBJECT_TYPE" = "T" ]; then

论坛徽章:
0
3 [报告]
发表于 2005-01-14 16:56 |只看该作者

手动运行正常的shell在crontab里调用时出错了

谢谢!

看出错信息 /erdb/bin/refresh_table: test: argument expected,
看来是refresh_table被调用过了,好像是参数传递方面碰到了问题,导致脚本无法运行。

论坛徽章:
0
4 [报告]
发表于 2005-01-17 15:15 |只看该作者

手动运行正常的shell在crontab里调用时出错了

[quote]原帖由 "rollingpig"]elif [ "$OBJECT_TYPE" = "T" ]; then [/quote 发表:


用这种方法试过
不过好像这里判断变得不成立了,不太明白

顶一下,希望能有人帮我解决。谢谢!

论坛徽章:
0
5 [报告]
发表于 2005-01-18 15:54 |只看该作者

手动运行正常的shell在crontab里调用时出错了

解决了,参见
http://bbs.chinaunix.net/forum/viewtopic.php?t=484189&show_type=
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP