如何在 Raspbian 上 运行 Bash 在 Crontab 中编写脚本?

How to run Bash Script in Crontab on Raspbian?

我已经在 Internet 上浏览了各种答案和回复,但似乎没有一个对我有用。我只想在 Raspberry PI 和 Raspbian 上使用 CRONTAB 每分钟 运行 一个 bash 脚本。

我有一个名为 autocon.sh 的脚本,我只是按如下方式输入了 crontab:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
...
1 * * * * root bash /home/pi/autocon.sh

但不会运行。 我做错了什么?

每分钟 运行 一个 cronjob,所有值都必须是星号。您的 cronjob 设置为 运行 在每小时整点后 1 分钟。

应该是:

* * * * * root bash /home/pi/autocon.sh

我不确定 'root' 部分的来源,但我猜你想要 运行 脚本作为 root?如果是这样,您需要将一个条目放入根 crontab,通过 运行ning:

sudo crontab -e

这将打开 root 用户 crontab 进行编辑,来自所述位置的任何 运行 都将 运行 具有 root 权限。

插入以下行:

* * * * * bash /home/pi/autocon.sh

应该这样做 :) 脚本中的 1 实际上表示 'run at 1 minute past the hour',因此在您的情况下,每小时过去 1 分钟 - 容易犯错!用*替换它意味着每分钟。

语法是:

minute - hour - day of month - month - day of week - command 

此外,如果您使脚本可执行,如下所示:

sudo chmod +x /home/pi/autocon.sh

可以省略'bash'命令,直接使用:

* * * * * /home/pi/autocon.sh

除非您将顶部的两行用于特殊用途,否则您也可以省略它们。

为清楚起见,Barmar 对我的原文的评论 post:

In per-user crontab files you don't put the username. But in /etc/crontab you do.