crontab 不执行,但是手动可以执行请各位看看什么原因!

时间:2021-02-16 08:00:52
我建了一个crontab,但是从来都启动过,但是手工可以执行!
-------------------------------------------------------------

TERM=vt100;export TERM
ORACLE_TERM=vt100;export ORACLE_TERM
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_BASE=/oracle/app;export ORACLE_BASE
ORACLE_HOME=/oracle/app;export ORACLE_HOME
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data;export ORA_NLS33
NLS_LANG="simplified chinese_china.ZHS16GBK";export NLS_LANG
ORACLE_SID=mhcc1;export ORACLE_SID
LD_LIBRARY_PATH=/oracle/app/lib:/oracle/app/network/lib:/oracle/app/rdbms/lib;export LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin:/usr/ccs/bin:/usr/local/bin;export PATH

echo "Checking smMain:"
#Checking ...
IS_RUN=`ps -ef | grep "\./smMain start sm1258.ini" | grep -v grep | awk '{print $2 }' `
if [ "X${IS_RUN}" = "X" ]; then
        echo "Now start smMain ..."
        cd /home/mhsys/smMain
        ./smMain start sm1258.ini &
else
         echo "smMain is already running ..."
fi

22 个解决方案

#1


出于测试目的新创建了一条 Cron JOB, 时间间隔必须超过两分钟,否则 JOB 将调度不到。如果必须忽略这两分钟的载入配置时间差,可以通过重新启动 Cron Daemon 做到。

#2


我不明白你的意思!
Cron JOB中是5分钟执行一次!

#3


该回复被版主删除

#4


crnotab 是root用户去执行,所以你用ORACLE环境变量要
source ~/.bash_profile

#5


俺也是新手,不过我曾碰到在程序中不是绝对路径,CRONTAB调用后并不执行的问题
所以楼主可以注意一下这两行
        cd /home/mhsys/smMain
        ./smMain start sm1258.ini &

#6


我也觉得可能是路径的问题,
你可以查看一下安全日志,看一下这个脚本到时间被调用了没

你在编辑crontab 把这个脚本的输出都记录下来, >>/root/err.txt 2>&1

#7


感谢各位不是路径的问题!

#8


其实应该是已经执行了的

只不过是执行失败,你看着没有效果,以为没有执行。

CRONTAB执行会返回一个系统EMAIL,在/var/spool/mail/oracle

你用vi命令查看oracle文件。如果crontab有执行定时命令,就会在这里面显示执行过程及结果。在这里可以看到你的定时命令有没有执行成功。如果失败又是什么失败提示,多数是绝对路径没有写好的。

这个很好用!!

#9


学习

#10


chmod 一下你的文件。 确保需要执行的文件有执行的权限。

#11


ps -ef|grep cron

看crond服务是不是启动了。。

#12


注意你的程序是不是会用到一些动态库,而这些动态库不是在系统默认搜索的路径下,而是你加入了LD_LIABRARY_PATH下。如果是这样,那么,CRONTAB可不会帮你去搜索这些路径。执行SOURCE ~/.bash_profile后,再做你要的操作即可。

#13


楼主是设置在/etc/crontab里之类的地方了吗?
那必须service crond restart

#14


lz 你要说下你的linux是什么系统;
一般能够手动执行,但是crontab不能执行应该是下边原因, 
你在根目录下用 ls -lrta 会有个隐藏文件 .bash_profile的文件(这个文件在不同同的操作系统里边是不一样的)
在你crontab调用的脚本里边,最上头加上
sh .bash_profile ,试验下

#15


mark

#16


引用 11 楼 huliang82 的回复:
ps -ef|grep cron

看crond服务是不是启动了。。


赞啊,我今天调了半天,就是这个问题,-_-||

#17


学习了

#18


首先,确认是否启动crond;其次,看一下syslog.conf配置,确认是否有crond相关配置文件;第三,查一下运行日志,分析原因。

#19


我也学习了,时间校准的问题,结果发现就是没有启东crond的服务,呵呵,待会去学习一下这个服务啊

#20


学习了,俺也终于成功的用crontab校准了我的virtualbox的时间了,真好玩,呵呵

#21


我用的root用户进去,怎么不能执行crontab啊,不知道什么原因

#22


引用 8 楼 willemzhai 的回复:
其实应该是已经执行了的

只不过是执行失败,你看着没有效果,以为没有执行。

CRONTAB执行会返回一个系统EMAIL,在/var/spool/mail/oracle

你用vi命令查看oracle文件。如果crontab有执行定时命令,就会在这里面显示执行过程及结果。在这里可以看到你的定时命令有没有执行成功。如果失败又是什么失败提示,多数是绝对路径没有写好的。

这个很好用!……

这个真的很好用!……

#1


出于测试目的新创建了一条 Cron JOB, 时间间隔必须超过两分钟,否则 JOB 将调度不到。如果必须忽略这两分钟的载入配置时间差,可以通过重新启动 Cron Daemon 做到。

#2


我不明白你的意思!
Cron JOB中是5分钟执行一次!

#3


该回复被版主删除

#4


crnotab 是root用户去执行,所以你用ORACLE环境变量要
source ~/.bash_profile

#5


俺也是新手,不过我曾碰到在程序中不是绝对路径,CRONTAB调用后并不执行的问题
所以楼主可以注意一下这两行
        cd /home/mhsys/smMain
        ./smMain start sm1258.ini &

#6


我也觉得可能是路径的问题,
你可以查看一下安全日志,看一下这个脚本到时间被调用了没

你在编辑crontab 把这个脚本的输出都记录下来, >>/root/err.txt 2>&1

#7


感谢各位不是路径的问题!

#8


其实应该是已经执行了的

只不过是执行失败,你看着没有效果,以为没有执行。

CRONTAB执行会返回一个系统EMAIL,在/var/spool/mail/oracle

你用vi命令查看oracle文件。如果crontab有执行定时命令,就会在这里面显示执行过程及结果。在这里可以看到你的定时命令有没有执行成功。如果失败又是什么失败提示,多数是绝对路径没有写好的。

这个很好用!!

#9


学习

#10


chmod 一下你的文件。 确保需要执行的文件有执行的权限。

#11


ps -ef|grep cron

看crond服务是不是启动了。。

#12


注意你的程序是不是会用到一些动态库,而这些动态库不是在系统默认搜索的路径下,而是你加入了LD_LIABRARY_PATH下。如果是这样,那么,CRONTAB可不会帮你去搜索这些路径。执行SOURCE ~/.bash_profile后,再做你要的操作即可。

#13


楼主是设置在/etc/crontab里之类的地方了吗?
那必须service crond restart

#14


lz 你要说下你的linux是什么系统;
一般能够手动执行,但是crontab不能执行应该是下边原因, 
你在根目录下用 ls -lrta 会有个隐藏文件 .bash_profile的文件(这个文件在不同同的操作系统里边是不一样的)
在你crontab调用的脚本里边,最上头加上
sh .bash_profile ,试验下

#15


mark

#16


引用 11 楼 huliang82 的回复:
ps -ef|grep cron

看crond服务是不是启动了。。


赞啊,我今天调了半天,就是这个问题,-_-||

#17


学习了

#18


首先,确认是否启动crond;其次,看一下syslog.conf配置,确认是否有crond相关配置文件;第三,查一下运行日志,分析原因。

#19


我也学习了,时间校准的问题,结果发现就是没有启东crond的服务,呵呵,待会去学习一下这个服务啊

#20


学习了,俺也终于成功的用crontab校准了我的virtualbox的时间了,真好玩,呵呵

#21


我用的root用户进去,怎么不能执行crontab啊,不知道什么原因

#22


引用 8 楼 willemzhai 的回复:
其实应该是已经执行了的

只不过是执行失败,你看着没有效果,以为没有执行。

CRONTAB执行会返回一个系统EMAIL,在/var/spool/mail/oracle

你用vi命令查看oracle文件。如果crontab有执行定时命令,就会在这里面显示执行过程及结果。在这里可以看到你的定时命令有没有执行成功。如果失败又是什么失败提示,多数是绝对路径没有写好的。

这个很好用!……

这个真的很好用!……