每天使用cronjob运行脚本


10

我需要确切的代码,因为我无法弄清楚。我曾经crontab -e设置过一个cron作业,但是当我保存它时,它将永远无法工作。我也只是试图运行一个newmail.sh由root用户调用的文件。


您找到问题的答案了吗?
bentaf

Answers:


10

如果您希望任务每天下午3:17运行,则可以使用:

17 15 * * * root newmail.sh

这表示“以root身份在每周的每一天,每月的每一天,每月的3:17 pm运行newmail.sh”。

分钟小时dom月份dow用户cmd

分钟-控制命令将在每小时的哪一分钟运行,并且介于“ 0”和“ 59”之间

hour-这控制命令将在哪个小时运行,并在24小时制中指定,值必须在0到23之间(0是午夜)

dom-这是每月的一天,您希望命令在其上运行,例如,要在每个月的19号运行命令,dom应该是19。

month这是指定命令将在其上运行的月份,可以用数字(0-12)指定,也可以指定为月份的名称(例如May)

dow-这是您要在其上运行命令的星期几,也可以是数字(0-7)或作为星期几的名称(例如sun)。

用户-这是运行命令的用户。

cmd-这是您要运行的命令。该字段可以包含多个单词或空格。

来自:http : //www.unixgeeks.org/security/newbie/unix/cron-1.html


在ubuntu 16及更高版本上,新格式为:“ mh dom mon dow command”
bentaf

在Ubuntu 19上,分钟是第一分钟。另外,它还会警告您有关错误的时间。
kelalaka

6
sudo crontab -e

在文件末尾添加这些行

*/1 * * * * wget -O /dev/null  project_crone_URL

(每1分钟运行一次cron)

0 0 * * * wget -O /dev/null  project_crone_URL

(每24小时运行一次cron)

保存存档

通过此命令启动crontab

sudo /etc/init.d/cron start

通过此命令停止crontab

sudo /etc/init.d/cron stop

通过此命令重新启动crontab

sudo /etc/init.d/cron restart

2

如果crontab -eUbuntu 16.0+开始使用,将没有用户字段,因此正确的格式为:

17 15 * * * newmail.sh

这表示“每周,每天,每月下午3:17运行newmail.sh”。

dm78的其他答案是正确的,并且包含该格式的准确说明。

另外,如果出现问题,并且您安装了邮件系统,它将向您发送消息。有关更多信息,请参见此答案

如果您对记录 cronjobs感兴趣,则可以使用此答案


2
这取决于的crontab编辑。这个crontab -e东西没有用户字段(正如您正确地说的那样),但是文件/etc/crontab(所谓的系统 crontab)和下面的文件/etc/cron.d 确实具有用户字段。
PerlDuck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.