我的主目录中有一个名为“test.sh”的脚本
我希望能够在 crontab 中运行它。
我已经添加了
* * * * * /home/tom/test.sh
但它似乎没有执行。
我可以在终端窗口中正常执行 ./test.sh。
编辑:
这是我的脚本“test.sh”的内容
#!/bin/sh
gnome-terminal -- sh -c 'cd Server && ./start.sh'
它创建一个新的终端窗口,将目录更改为服务器并运行另一个可执行脚本。
我不知道这是否与 Cron 中的脚本不起作用有关。
我在 /var/log/syslog 中收到的错误是:
CRON[18694]: (tom) CMD (sh /home/tom/test.sh)
CRON[18693]: (CRON) info (No MTA installed, discarding output)
答案1
首先,语法执行时间的演示如下。CronTab 可能令人困惑,但充裕那里的导游可以为您提供帮助。
现在,就你的情况而言,你有:
* * * * * /home/tom/test.sh
根据你编辑 Crontab 的方式,这可以可能是权限问题。使用时bash
,我总是执行以下操作:
* * * * * sh /home/tom/test.sh
这与以下内容相同:
* * * * * /home/tom/test.sh
test.sh
具有类似结构的理论:
#!/bin/bash
for i in */ .*/ ; do
echo -n $i": " ;
(find "$i" -type f | wc -l) ;
done
最后要检查的是脚本是否可执行:
chmod +x /home/tom/test.sh
对我来说,我在 Crontab 上执行以下操作:
# Example Crontab command:
# * * * * * /home/mn/Documents/Scripts/counta.sh >> /home/mn/Documents/Scripts/test
这能够按要求成功运行并输出测试文件。