Crontab 不执行的可能原因:环境变量设置问题或是登录帐号问题。

来源:互联网 发布:万网 域名维护费用 编辑:程序博客网 时间:2024/05/01 21:00

一个JOB脚本最近不执行了。

查log:

[root@ora04ud-us]# view /var/cron/log
"/var/cron/log" [Read only] 44564 lines, 1867436 characters
>  CMD: ksh /global/oracle1/ORAHOME1/local/dbatools/scripts/rotate_logs.sh >/global/oracle1/ORAHOME1/local/dbatools/logs/rotate_logs
_141.log 2>&1
>  oracle 7574 c Tue Jun  1 05:00:00 2010
! bad user (oracle) Tue Jun  1 05:00:00 2010
! >  CMD: /usr/lib/acct/ckpacct
>  adm 7575 c Tue Jun  1 05:00:00 2010
bad user (adm) Tue Jun  1 05:00:00 2010
<  oracle 7574 c Tue Jun  1 05:00:00 2010 rc=1
<  adm 7575 c Tue Jun  1 05:00:00 2010 rc=1
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 7629 c Tue Jun  1 05:02:00 2010
<  root 7629 c Tue Jun  1 05:02:01 2010
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 7759 c Tue Jun  1 05:06:00 2010
<  root 7759 c Tue Jun  1 05:06:02 2010
>  CMD: ksh /global/oracle1/ORAHOME1/local/dbatools/scripts/clean_trace.sh >/global/oracle1/ORAHOME1/local/dbatools/logs/clean_trace
_141.log 2>&1
>  oracle 7887 c Tue Jun  1 05:10:00 2010
! bad user (oracle) Tue Jun  1 05:10:00 2010
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 7888 c Tue Jun  1 05:10:00 2010
<  oracle 7887 c Tue Jun  1 05:10:00 2010 rc=1
<  root 7888 c Tue Jun  1 05:10:02 2010
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 8016 c Tue Jun  1 05:14:00 2010
<  root 8016 c Tue Jun  1 05:14:01 2010
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 8149 c Tue Jun  1 05:18:00 2010
<  root 8149 c Tue Jun  1 05:18:02 2010
>  CMD: /opt/cluster_batch > /dev/null 2>&1
>  root 8266 c Tue Jun  1 05:22:00 2010

出现这种情况一般是环境变量设置问题或是登录帐号问题,检查环境变量完好。再检查帐号,原来是密码过期了。重新设置密码问题就解决了。

当直接用oracle用户写cron时
#su - oracle
$EDITOR=vi;export EDITOR---------如果是C shell,$setenv EDITOR vi

$crontab -e

 

或(但这里推荐用)

 

$vi crontab.txt

$crontab crontab.txt


另外/etc/cron.d/目录下还有cron.allow和cron.deny两个文件可以控制crontab的执行
用/etc/cron.d/cron.deny和/etc/cron.d/cron.allow文件来控制对crontab命令的访问,其作用规则同at命令的访问控制,执行优先级为cron.allow>cron.deny具体如下:
1.        当存在cron.allow文件时,只有此文件中列出的用户可以执行crontab(如果为空所有人都没权限)
2.        当仅有cron.deny文件存在时,只有此文件中列出的用户不能执行crontab
3.        当两者都不存在时,除了root用户 所有人都不能访问crontab

 

原创粉丝点击