【问题标题】:Cron jobs are not working on EC2 Aws Ubuntu 18.04 instance?Cron 作业不适用于 EC2 Aws Ubuntu 18.04 实例?
【发布时间】:2020-09-21 03:45:07
【问题描述】:

你好吗?

这些天我一直在拼命地尝试实现每 6 小时运行一次脚本但没有任何成功,我什至尝试了最简单的脚本并且它们在任何时候都不会触发,我不知道我做错了什么。

首先我尝试使用crontab -e 添加一个新的 crontab,添加以下行: 1 * * * * root echo "test" > /home/ubuntu/test.txt

这个 cron 作业应该每分钟执行一次,并用字符串“test”覆盖 contect,但它既不创建文件也不添加字符串(显然)

我也尝试修改 /etc/crontab 文件,但没有成功,我添加了以下行: * * * * * root date && echo 'it works' >> /home/ubuntu/crontest.log 2>&1

同样的结果,它永远不会被执行,服务正在运行,我进行了适当的更新,一切似乎都没有工作,为什么?

【问题讨论】:

  • cron 服务在运行吗?试试sudo service cron status查看状态
  • @JulienB。自周五(2 天前)以来一直处于活动状态并正在运行,重新启动它可能会有所帮助吗?
  • 嗯,不是真的:P 你的 crontab 命令中的“root”这个词是什么意思?
  • 在某处应该有一个日志条目表明作业已运行。检查您的系统日志,可能是/var/log/syslog。我的猜测是作业确实运行但没有做任何事情,因为没有像 root 这样的命令。

标签: linux amazon-web-services amazon-ec2 cron


【解决方案1】:

首先,如果您希望每分钟运行一次 crontab,您应该使用 * * * * * <your command> 而不是 1 * * * * <your command>,它将每隔 hh:01(每小时的第一分钟)运行一次 cron 作业。

接下来,你的 crontab 中的 root 这个词对我来说似乎有点奇怪。如果您想以 root 身份运行 cron 作业,通常必须在该用户下创建它。您可以尝试sudo crontab -esudo crontab -u <a user> -e 将其创建为“用户”。

最后,如果您希望 crontab 每 6 小时运行一次,您可以使用0 */6 * * * <you command>

【讨论】:

    【解决方案2】:

    Julien B. 几乎从一开始就有答案。 root 关键字让我的 cron 工作不用担心,我以为我在没有 root 词的情况下尝试过,但都没有成功,但可能我的 cron 语法根本不正确,或者写的时间比预期的要长。

    无论如何,删除关键字“root”可以解决所有问题,感谢 Julien 和所有提供帮助的人 :)

    【讨论】:

      猜你喜欢
      • 2017-03-22
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 1970-01-01
      • 2015-04-17
      • 2021-12-01
      • 2014-05-25
      相关资源
      最近更新 更多