CentOS8 Crontab定时任务

本CentOS8教程主要介绍Crontab定时任务和Crontab作业的使用方式。

【全栈教程】:https://try8.cn/article
教程目录:
教程内容:
最近更新:2022-11-23

一、crontab介绍

Crontab是系统定时任务计划,也称之为系统作业,用于周期性的执行程序。crontab定时任务的工作主要分为以下两类。

  1. 系统任务:系统周期性所要执行的工作,如备份系统数据、清理缓存等;
  2. 用户任务:某个用户定期要做的工作,例如每隔几分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置等。


二、crontab常用命令

2.1、查看Crontab作业状态

crond 服务一般在CentOS8系统中默认安装,在本CentOS8教程中,我们可以使用如下命令查看Crontab定时任务。

systemctl status crond


如果不存在,我们可以用这个命令安装。

dnf install crontabs


2.2、查看指定用户的Crontab作业

例如查看CentOS8系统中用户nobody的Crontab定时任务,不加-u参数,则查看当前用户的作业。

crontab -l -u nobody


2.3、编辑指定用户的Crontab作业

如果目录已经存在指定的文件(文件名为当前用户名),则会编辑文件,否则将会以当前用户名创建作业文件,注意/var/spool/cron是用户任务,/etc/crontab是系统任务。

crontab -e -u nobody


2.4、删除指定用户的所有Crontab作业

crontab -r -u nobody


2.5、重启Crontab作业

systemctl restart crond


2.6、停止Crontab作业

systemctl stop crond


2.7、查看Crontab版本

crond -V


三、Crontab文件

3.1、Crontab日志位置

在 /var/log目录下,cron打头的就是系统作业执行的日志文件。


3.2、Crontab位置

在 /etc/crontab目录下,这些任务都会是系统在运行起来后自动进行调度的。


3.3、禁止使用Crontab命令的用户

在 /etc/cron.deny 表示不能使用Crontab命令的用户。


3.4、允许使用Crontab命令的用户

在 /etc/cron.allow 表示能使用Crontab的用户。如果/etc/cron.deny和/etc/cron.allow同时存在,那么/etc/cron.allow 优先。如果两个文件都不存在,那么只有root用户可以安排作业。


四、Crontab作业的使用

4.1、Crontab创建

crontab -e


4.2、此时会进入到vi编辑界面,来编写我们要调度的Crontab定时任务

* * * * * command // 前五个字段可以取整数值,指定何时开始工作,第六个域是命令字段。 字段之间用空格分割。
  • 每小时的第几分钟执行,取值 0-59
  • 每日的第几个小时执行,取值 0-23
  • 每月的第几天执行,取值 1-31
  • 每年的第几月执行,取值 1-12
  • 每周的第几天执行,取值 0-6


4.3、Crontab命令中的一些常用特殊符号

  • *表示任何时刻
  • ,表示分割
  • -表示一个段,如第二段里: 1-5,就表示1到5点
  • /n表示每个n的单位执行一次,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1


4.4、Crontab常用示例

例如:每天8点、12点、16点的0分钟执行以下tmp目录下的sh文件。

00 8,12,16 * * * /tmp/test.sh


例如:每天的21:43 执行

43 21 * * * /tmp/test.sh


例如: 每周一的 17:00 执行

0 17 * * 1 /tmp/test.sh


例如:周一到周六 21:00 执行

0 21 * * 1-6 /tmp/test.sh


小提示:试试吧全栈教程系列之 - 《CentOS8教程》跟随软件版本的更新不断完善和优化,本教程主打原创、全部免费,欢迎学习和转载,与人方便、科技向善,敬请 收藏和分享 试试吧,谢谢。