CentOS Crontab 困境

CentOS Crontab 困境

我有一个希望每天运行的 shell 脚本(用于更新 CentOS 并通过 SSMTP 发送确认电子邮件)。该脚本运行正常,位于 /etc/cron.daily 中,问题是它每小时运行一次,而不是每天在我指定的时间运行。

我的 /etc/crontab 文件如下所示:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
05 13   * * *   root run-parts /etc/cron.daily
05 13   * * 6   root run-parts /etc/cron.weekly

现在,在手动编辑此文件之后,我发现我应该使用“crontab -e”命令,我照做了,输出如下所示:

05 13   * * *   root run-parts /etc/cron.daily
05 13   * * 6   root run-parts /etc/cron.weekly

我还读到 /etc/anacrontab 对作业运行时间有影响,其输出如下所示:

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

我本来打算让脚本每天下午 13:05 运行,但是实际上脚本每小时大约在整点 40 分运行一次,而我在这 3 个文件中找不到触发该脚本的任何地方。

我很高兴在 Ubuntu 中成功安排了 cron 任务,但 CentOS 却显得有点复杂。我是不是在某个地方犯了明显的错误?

非常感谢您的帮助。

答案1

做完之后

crontab -e

添加一些简单的东西:

@daily sh /path/to/myscript

那应该每天执行myscript。

如果您想要一天中的特定时间:

0 16 * * * sh /path/to/myscript

每天 16:00 执行该脚本

更多有用信息

相关内容