CentOS8教程
  • 更新时间:2020-06-22

一、crontab 介绍


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


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


二、crontab 常用命令


2.1、查看作业状态


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

systemctl status crond


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

dnf install crontabs


2.2、查看指定用户的作业


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

crontab -l -u nobody


2.3、编辑指定用户的作业


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

crontab -e -u nobody


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


crontab -r -u nobody


2.5、重启作业


systemctl restart crond


2.6、停止作业


systemctl stop crond


2.7、查看版本


crond -V


三、crontab 相关文件


3.1、crond 的日志位置


在 /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编辑界面,来编写我们要调度的任务


* * * * * 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、常用示例


例如:每天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 系统中的crontab命令的常见用法,包括作业的创建、修改和删除等,欢迎转载,转载请注明出处,谢谢。