将 shell 脚本添加为 crontab 作业后不执行

Hoo*_*ini 4 command-line bash cron

我添加了以下 crontab 作业:

sudo crontab -e
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

58 * * * * ubuntu /home/ubuntu/backup/mysqlbackup.sh
>/home/ubuntu/backup/log/backup.log
Run Code Online (Sandbox Code Playgroud)

我已经尝试过 root 和 ubuntu 用户。

当我运行命令时:

sudo crontab -l
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

当我运行时:

systemctl status cron
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是mysqlbackup.sh没有执行。知道问题出在哪里,或者我如何诊断出了什么问题?


注意我只添加了几分钟来测试脚本

vid*_*rlo 9

58 * * * * ubuntu /home/ubuntu/backup/mysqlbackup.sh >/home/ubuntu/backup/log/backup.log
Run Code Online (Sandbox Code Playgroud)

这是不正确的格式。

crontab 文件中描述了格式:

  # m h  dom mon dow   command
Run Code Online (Sandbox Code Playgroud)

ubuntu不是命令。删除它,所以该行显示:

  58 * * * *  /home/ubuntu/backup/mysqlbackup.sh >/home/ubuntu/backup/log/backup.log
Run Code Online (Sandbox Code Playgroud)

在系统范围/etc/crontab内指定的 crontab具有用户字段:

These files also have username fields,
# that none of the other crontabs do.
[...]
# m h dom mon dow user  command
Run Code Online (Sandbox Code Playgroud)

  • +1 *user* 字段是一个 **extra** 字段,仅用于系统范围的 crontabs(`/etc/crontab` 和 `/etc/cron.d/` 中的文件) (4认同)
  • 不,如果您想以特定用户身份运行它,您应该将其添加到该用户的 crontab 中,例如以相关用户身份运行 `crontab -e`。编辑器会显示正确的格式,并附有示例。 (2认同)