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

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

我设置了一个 cron 任务:

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

主要问题是,在预定的时间,出现错误:“邮件已发送至 /var/spool/mail/lucky”。

myfile.sh的内容为:

mkdir jh
cd jh 

答案1

对于设置为 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

答案2

似乎创建文件夹的路径是/。这是因为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/

相关内容