Crontab 在 Ubuntu 10.04 中不起作用

Crontab 在 Ubuntu 10.04 中不起作用

我把它安装在了一台工作机器上,但无论我怎么做,它都不起作用。所以现在我在家里的虚拟机上安装了它,但它也不起作用。以下是我想做的事情:

在 /home/john/Desktop 上有一个名为 test.sh 的文件。其内容为:

#!/bin/bash
echo "Bing!" > /tmp/cronjob

已完成chmod 777 test.sh并可以运行它。列表显示它为 users/group/global 的 rwx。然后我执行crontab -e并添加以下行:

* * * * * john /home/john/Desktop/test.sh

但它不起作用。文件从未写入。我也尝试过使用特定时间(例如,现在是晚上 9 点,所以我将小时设置为 05 21 并等待),但它也不起作用。我也尝试过在 crontab 中不使用用户“john”,但没有成功。我crontab -e -u john也尝试过使用。什么都没用。

执行后service cron status我发现它已启动/正在运行。我也尝试过重新启动它。

我究竟做错了什么?

另外,如果我需要以 root 身份运行某些命令,我​​应该使用它吗crontab -e -u <username> right

答案1

只是要确定:

crontab -e

然后

30 21 * * * /home/john/Desktop/test.sh

编辑:我的意思是你不需要在 cron 的时间部分和命令路径旁边有“john”。

答案2

有三种不同的方法来使用 cron。

  1. 将脚本放入 /etc/cron.hourly 、 /etc/cron.daily 、 /etc/cron.weekly 或 /etc/cron.monthly 文件夹中,
    系统将在预定时间以 root 权限运行这些脚本
  2. 编辑 /etc/crontab
    这需要类似于您尝试使用的语法crontab -e,因为在这里您可以指定哪个用户应该负责计划的作业,在您的情况下是约翰。
  3. crontab 命令,它将为执行该作业的用户保存一个 cron 选项卡,保存在 /var/spool/cron/crontabs 中

如果您使用第三种方法,则无需告诉它您是约翰,它已经知道了。但是,您可以使用 -u 标志告诉它将该作业保存在其他人的 cron 选项卡中。
使用第三种方法,您不需要约翰* * * * * john /home/john/Desktop/test.sh

答案3

* * * * * john /home/john/Desktop/test.sh

这里的“john”是错误的。只有系统 crontab 才有用户名字段;使用 crontab -e 编辑的每个用户 crontab 没有该字段(用户是隐式的)。只需将其省略即可。

另外,如果我需要以 root 身份运行一些命令,我​​应该使用它和 crontab -e -u,对吗?

不,如果你想要一个 cronjob 以 root 权限运行,只需执行

sudo crontab -e

(或者将其放入系统crontab中,用户名是“root”)。

相关内容