问题描述
我已经设置了一个 cron 工作:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
主要问题是在调度时间出现错误:“mail has sent to /var/spool/mail/lucky”。
myfile.sh 的内容是:
mkdir jh
cd jh
最佳思路
这不适用于设置为 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
次佳思路
这似乎是创建文件夹的路径是 /
。这是因为 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/