crontab -e定时任务无法执行

执行过程:

  1. 我在/space/apache下执行以下命令,能成功运行
find processor-*  -type f -exec rm -rf {} \;

2. 在/space/apache下写脚本,并赋予执行权限 

#!/bin/sh
find processor-*  -type f -exec rm -rf {} \;

3.执行定时任务,让他一分钟执行一次,在命令行中输入crontab -e,编写以下内容

*/1 * * * * /space/apache-tomcat-8.5.6/auto-del-10-mins-queue.sh

我在/space/apache/process-url下新建普通文件lin.txt,等待定时任务执行,却发现这个普通文件始终没有被删除。

解决过程:

1.手动执行脚本,看能否成功,我在/space/apache下,运行./auto-del-10-mins-queue.sh,脚本成功执行,但离开/space/apache运行脚本,脚本运行失败,这说明脚本无法找到process-*目录,于是修改脚本:

#!/bin/sh
find /space/apache-tomcat-8.5.6/processor-*  -type f -exec rm -rf {} \;

2.但定时任务无法成功执行,我猜想是定时任务格式设置错误,参考 https://blog.csdn.net/u012995201/article/details/70575251,于是我修改定时任务为:

0,1,2,3,4 * * * * /space/apache-tomcat-8.5.6/auto-del-10-mins-queue.sh

3.修改完后继续测试,定时任务仍然无法成功执行,于是我修改脚本中的命令为全局路径:

#!/bin/sh
/bin/find /space/apache-tomcat-8.5.6/processor-*  -type f -exec /bin/rm -rf {} \;

4.定时任务还是执行失败,遂查看脚本执行log,/var/log/cron,发现定时任务没有在运行脚本。(若有输出“Jan  3 14:22:01 localhost CROND[54964]: (root) CMD (/space/apache-tomcat-8.5.6/auto-del-10-mins-queue.sh)”,说明有在执行脚本)

5.我又把定时任务修改回,查看/var/log/cron,发现定时任务在成功执行脚本,脚本也运行成功。

*/1 * * * * /space/apache-tomcat-8.5.6/auto-del-10-mins-queue.sh

总结:

定时任务的执行是有log,我们可以查看定时任务有没有在运行脚本,从而判断是定时任务的设置错误还是脚本的设置错误

 

你可能感兴趣的:(linux)