如何设置cron作业以运行Shell脚本?


44

我已经安排了一份工作:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

主要问题是在计划时间,出现错误:“邮件已发送到/ var / spool / mail / lucky”。

myfile.sh的内容为:

mkdir jh
cd jh 


2
如果myfile.sh设置为可执行文件?
rogerdpack

Answers:


60

对于设置为cron作业的脚本,这不行:

mkdir jh
cd jh 

您应提供jh必须在其中创建目录的完整路径。另外,在此路径中,您应具有创建新文件/目录的权限。

例如,您的脚本应如下所示:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

另外/usr/bin/sh是不是正确的道路sh。正确的道路是/bin/sh。您可以使用whereis sh命令进行检查。即使如此,您的Cron工作也应如下所示:

20 * * * * /home/lucky/myfile.sh

不要忘记使脚本可执行:

chmod +x /home/lucky/myfile.sh

糟糕透顶,挽救了我的生命:)矿山的运作正常。0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2>&1
Louwki '16

5

这似乎在创建文件夹的路径是/。这是因为crontab要求 在执行的所有文件中具有文件夹和文件的完整路径

因此,myfile.sh中的路径应为

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.sh这行是正确的,尽管您应该检查路径以查看sh是否在/ usr / bin / sh中存在(which sh用来查看sh存在的路径;我的是/ bin / sh)

如果您急于开始编写crontab,则此链接提供了很好的示例

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.