cron任务未运行的六大常见原因(未完成)

本文翻译自http://2clickfix.com/6-reasons-cron-job-not-running/

原标题为 6 Reasons Your cron Job is Not Running

    如果你之前从来未使用过计划任务类工具,cron将会是一个彻头彻尾的混蛋。这个工具常常会使得过程十分的复杂挑剔。如果你的定时任务未能正常执行,以下是六个最常见的被挂起的问题。

    1、错误的环境

    用户所进行的操作均在一个明确的环境下执行,在这个环境下,所有的程序和工具都有直接的路径。而cron只在有限的路径下执行操作,而且并不总是有权限访问同样的程序。系统的PATH变量正是告诉shell去哪里寻找可执行程序的。如果你试图利用一个不存在在你系统路径下的程序执行操作时,shell会返回错误。这种情况下,你的定时任务就不会执行。你可以通过对比cron的环境与系统当前用户的环境来判断你的问题是否属于这种情况。在crontab中添加下边这行命令,将会把环境信息记录在/tmp/path.txt中。

* * * * * env > /tmp/path.txt

    将path.txt中的内容与当前环境的变量作对比,你将会发现两者之间有很大的差别,尤其是用于寻找可执行文件的PATH变量。执行下列指令查看当前的PATH变量:

echo $PATH

    解决方案:

    在这种情况下,你可以选择在脚本中改用绝对路径,这样可以确保cron能够找到执行应用的准确路径,如:

/usr/app/command -x take-over-the-world-pinky

    或者你也可以在脚本的顶端手动设置PATH变量(译者注:可以利用crontab -e 指令编辑定时任务清单,加在第一行),如:

#!/bin/bash
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    这样使得cron能够正确的访问你的程序,以上的两种方法任意一种都可以达到效果,根据习惯使用。

    2、你的脚本并不属于root用户

        

    待续。。。

猜你喜欢

转载自blog.csdn.net/yuanlaidewo000/article/details/80417380