如何设置 cron 作业来运行 shell 脚本?

Abh*_*thi 55 scripts cron

我已经设置了一个 cron 工作:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Run Code Online (Sandbox Code Playgroud)

主要问题是在预定时间出现错误:“mail has sent to /var/spool/mail/lucky”。

myfile.sh 的内容是:

mkdir jh
cd jh 
Run Code Online (Sandbox Code Playgroud)

Rad*_*anu 80

这不适用于设置为 cron 作业的脚本:

mkdir jh
cd jh 
Run Code Online (Sandbox Code Playgroud)

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

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

mkdir jh
cd jh 
Run Code Online (Sandbox Code Playgroud)

另外/usr/bin/sh是不是正确的道路sh。正确的路径是/bin/sh。您可以使用whereis sh命令检查这一点。即便如此,您的 cron 作业应该如下所示:

20 * * * * /home/lucky/myfile.sh
Run Code Online (Sandbox Code Playgroud)

不要忘记使脚本可执行:

chmod +x /home/lucky/myfile.sh
Run Code Online (Sandbox Code Playgroud)


pen*_*der 6

这似乎是在其中创建文件夹的路径是/. 这是因为它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/