有些时候,写好的 shell 脚本手工运行很正常,但一旦把其配置在 crontab 上调度就会出现这样或那样的问题。本人就遇到到如下几种情况。
1 、在调用 oracle 的 sqlplus 、 sqlldr 等命令工具时必须写出其全路径才能在 crontab 中执行成功,否则,虽然手动运行很正常,但一配到 crontab 上就出现异常。
2 、手动运行 shell 脚本时,可以用 sh 命令;但在 cron 中一定不能用 sh 执行命令,而要用直接的列出 shell 脚本文件的方式顺序执行。
3 、在 crontab 调用时,如果有用到数据库,最好把数据库的相关环境变量等列写出来。
4 、要在 crontab 里调度, shell 脚本中引用到的文件最好都写绝对路径。
对于
crontab
调度而出现的问题的查找,
AIX
的系统邮件,很是一个突破口。根据邮件中的内容,一步步对所调度的
shell
进行问题的查找及解决。
注意:
如果是遇到数据库的脚本,一定要注意环境变量,例如
PATH=$PATH:$HOME/bin
export PATH
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_BASE=/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=racdb1
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
检查crond进程是否正常
/etc/init.d/crond status
/etc/init.d/crond start
service rsyslog status
ps -elf|grep crond
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28371090/viewspace-1762173/ ,如需转载,请注明出处,否则将追究法律责任。