Crontab不工作,还有一些crontab问题

时间:2013-11-22 17:44:48

标签: bash cron

我一直在尝试使用crontab每分钟运行一个脚本,但它不会运行。我为它准备的代码是:

* * * * * ~/me/folder/myScript.sh

我认为目的地错了所以我也尝试过:

* * * * * home/me/folder/myScript.sh

我对bash很新,所以我有点无能为力。我试过pgrep cron以确保我有cron运行。

2 个答案:

答案 0 :(得分:0)

运行crontab时的当前目录是您的主目录,因此您无需为其设置显式路径。

* * * * * folder1/folder2/folder3/myScript.sh >>myScript.log 2>&1

但如果你想要,你需要把它变成一条绝对的道路:

* * * * * /home/me/folder1/folder2/folder3/myScript.sh >>/home/me/myScript.log 2>&1

答案 1 :(得分:0)

由于您使用的是匿名示例,因此有点难以辨别,但我认为您的脚本使用了错误的路径。通常,路径将采用以下三种格式之一:

  • 绝对路径:通过以“/”开头来区分这些路径,并从系统卷的根开始指定路径。如果我正确理解您的示例,您的脚本将位于绝对路径“/home/me/folder1/folder2/folder3/myScript.sh”。

  • 基于家庭的路径:以“〜”开头,可选地后跟用户名。假设您的用户名是“我”,主目录是“/ home / me”,您可以使用“〜/ folder1 / folder2 / folder3 / myScript.sh”或“~me / folder1 / folder2 / folder3 /”指定脚本myScript.sh”。

    您使用的路径“〜/ me / folder1 / folder2 / folder3 / myScript.sh”等同于“/home/me/me/folder1/folder2/folder3/myScript.sh”。注意“me / me /”位 - 这是因为“〜”和“我”之间的“/”。

    (顺便说一下,这里并不重要,但这些并不是真正的路径;它们是shell支持的简写,因此它们只能用于shell或类似命令解释命令的地方。)

  • 相对路径:它们不以“/”或“〜”开头,并且相对于进程的当前工作目录指定路径。

    在cron作业中,工作目录(至少最初)设置为用户的主文件夹。因此,当您指定路径“home / me / folder1 / folder2 / folder3 / myScript.sh”时,它相当于绝对路径“/home/me/home/me/folder1/folder2/folder3/myScript.sh”。

因此,最终结果是您应该能够使用以下任何路径:

/home/me/folder1/folder2/folder3/myScript.sh
~/folder1/folder2/folder3/myScript.sh
~me/folder1/folder2/folder3/myScript.sh
folder1/folder2/folder3/myScript.sh