您的位置:

CentOS 7 Crontab详解

一、CentOS 7 Crontab简介

CentOS 7系统拥有强大的定时任务功能——Cron,可以让用户预设一些操作在指定的时间周期性地运行。Cron通常用于自动化管理一些重复性操作,如数据备份、服务器监控、更新缓存等。本文将会对CentOS 7的Crontab进行详细讨论和演示。

二、CentOS 7 Crontab不执行

如果定时任务没有执行,一般就是出现了错误。我们可以通过以下方法解决该问题:

1、检查定时任务格式是否正确

* * * * * Command

上述格式是Crontab定时任务格式,它表示定时任务在每分钟都会执行。如果你的定时任务没有执行,首先确保任务格式正确,例如:

* * * * * /usr/bin/python /root/test.py

2、检查定时任务的文件名是否合法

如果你是手动新建了定时任务文件并命名为mycron,那么在Crontab执行命令时应该使用下面的命令:

crontab /root/mycron

注意,每次添加新任务后,建议执行下面的命令来查看Crontab保存的定时任务信息是否正确,以免由于Crontab未正确读取定时任务而导致任务不执行:

crontab -l

三、CentOS 7 Crontab编辑后不生效

编辑Crontab文件后,如果任务没有正常执行,可以采取以下步骤:

1、将文件重命名为mycron,然后执行如下命令:

crontab /root/mycron

2、查看Cron服务是否启动,如果没有启动,则启动:

service crond start

3、查看Cron服务的运行状态:

service crond status

如果输出active(running)表示服务已经启动,并且正在运行。

四、CentOS 7 Crontab开机执行任务

默认情况下,CentOS 7的Crontab是不支持系统启动时自动执行任务的,需要手动添加相关设置。方法如下:

1、编辑CentOS 7系统的开机配置文件:

vim /etc/rc.local

2、添加自启的配置命令:

sudo -u root bash -c 'echo "/usr/bin/python /root/test.py >> /root/test.log" | /usr/bin/at now'

该命令在系统启动时会自动执行test.py,并将标准输出信息重定向到test.log文件中。

五、CentOS 7 Crontab命令选取

在CentOS 7的Crontab中,常用的命令选项有:

1、Minute

表示分钟,取值范围为0-59,例如:

0,15,30,45 * * * * /usr/local/bin/test.sh

上述Crontab语句表示在每小时的0、15、30、45分钟执行一次test.sh脚本

2、Hour

表示小时,取值范围为0-23,例如:

0 2 * * * /usr/local/bin/test.sh

上述Crontab语句表示在每天凌晨2点执行test.sh脚本

3、Day

表示每月的第几天,取值范围为1-31,例如:

0 0 1 * * /usr/local/bin/test.sh

上述Crontab语句表示在每个月的1号执行test.sh脚本

4、Month

表示每年的第几个月,取值范围为1-12,例如:

0 0 1 1 * /usr/local/bin/test.sh

上述Crontab语句表示在每年的1月1日执行test.sh脚本

5、Weekday

表示每周的星期几,取值范围为0-6,0表示星期日,例如:

0 0 * * 0 /usr/local/bin/test.sh

上述Crontab语句表示在每周的星期日执行test.sh脚本

结语

CentOS 7的Crontab是一款非常强大的定时任务管理工具,使用它可以大大提高工作效率,自动化完成一些重复性任务。相信通过本文的介绍和演示,你已经掌握了CentOS 7的Crontab相关知识。