免费注册 查看新帖 |

Chinaunix

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

crontab脚本不能正常执行的原因?请教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-22 10:13 |只看该作者 |倒序浏览
在下在RHEL 4 U8下的ORACLE RAC中的一个节点的ORACLE 用户下执行一个crontab

crontab -e
00 1 * * * /rac_bak/rman.sh >/rac_bak/`date +%y-%m-%d`.log

利用RMAN每日备份归档并按策略删除归档日志,最后生成日志存放在/RAC_BAK等等。
可是每日并没有执行,斌且从/VAR/MAIL下的ORACLE邮件中收到报错,如下:

From oracle@localhost.localdomain  Sat Jun 19 01:00:01 2010
Return-Path: <oracle@localhost.localdomain>
Received: from localhost.localdomain (gc2 [127.0.0.1])
        by localhost.localdomain (8.13.1/8.13.1) with ESMTP id o5IH01I7024929
        for <oracle@localhost.localdomain>; Sat, 19 Jun 2010 01:00:01 +0800

Received: (from oracle@localhost)
        by localhost.localdomain (8.13.1/8.13.1/Submit) id o5IH01cG024928;
        Sat, 19 Jun 2010 01:00:01 +0800
Date: Sat, 19 Jun 2010 01:00:01 +0800
Message-Id: <201006181700.o5IH01cG024928@localhost.localdomain>
From: root@localhost.localdomain (Cron Daemon)
To: oracle@localhost.localdomain
Subject: Cron <oracle@gc2> /rac_bak/rman.sh >/rac_bak/`date +
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/usr/oracle>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=oracle>
X-Cron-Env: <USER=oracle>

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file


单独执行/rac_bak/rman.sh >/rac_bak/`date +%y-%m-%d`.log,并没有问题出现。

论坛徽章:
0
2 [报告]
发表于 2010-06-22 10:15 |只看该作者
朋友给我个建议,从root用户下:
crontab -e
45 12 * * * su - oracle "/rac_bak/rman.sh >/rac_bak/`date +%y-%m-%d`.log"

不知有用否

论坛徽章:
0
3 [报告]
发表于 2010-06-23 20:24 |只看该作者
本帖最后由 wq_1228 于 2010-06-23 20:26 编辑

应该是 % 的问题
我也遇到过相同的问题
crontab设置的最后一个参数,也就是执行的命令
/rac_bak/rman.sh >/rac_bak/`date +%y-%m-%d`.log

cron在读取它的时候,遇到%的话,会作为换行符号处理

导致这个命令本身没有正确设置参数。

解决方法,可以再作一个shell文件,把这个命令全写到shell中,cron设置时直接调用新shell

论坛徽章:
0
4 [报告]
发表于 2010-06-27 21:19 |只看该作者
首先,该脚本既然是在oracle用户环境下执行,那么在root用户的crontab里面
建议切换到oracle用户执行;因为rman有很多参数都是依赖oracle用户的环境变量。
所以你的朋友告诉你的su - oracle 是对的。
其次,楼上的说道对,尽量不要将特殊符号放在crontab里面,单独做一个文件出来执行最好。

论坛徽章:
0
5 [报告]
发表于 2010-06-28 16:45 |只看该作者
应该是 % 的问题
我也遇到过相同的问题
crontab设置的最后一个参数,也就是执行的命令
/rac_bak/rman.s ...
wq_1228 发表于 2010-06-23 20:24



   

支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP