如何在 crontab 中运行脚本?

如何在 crontab 中运行脚本?

我的主目录中有一个名为“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

这能够按要求成功运行并输出测试文件。

相关内容