一、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相关知识。