Centos通过crontab配置定时任务

一.简单说明

我们在实际使用Centos系统的过程中,可能会涉及一些定时任务的操作,比如定时清理环境上的垃圾文件。这里我遇到的一个问题就是,CI环境上构建的Docker IMAGE的清理,这里我采用了crontab来配置实现。

二.crontab介绍

crond是定时任务的一个守护进程,crontab是一个命令,常见于Unix和类Unix的操作系统,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取执行。可以通过crontab命令添加或编辑需要执行的定时任务。

三.crontab操作

crontab -u   设定某个用户的cron服务
crontab -l   列出某个用户cron服务的详细内容
crontab -r   删除某个用户的cron服务
crontab -e   编辑某个用户的cron服务
crontab -i   打印提示,输入yes等确认信息

四.基本格式

# 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
定时任务的每段为:分,时,日,月,周,用户,命令

具体说明:
第1列:表示分钟1~59 每分钟用*或者 */1表示
第2列:表示小时1~23(0表示0点)
第3列:表示日期1~31
第4列:表示月份1~12
第5列:表示星期0~6(0表示星期天)
第6列:表示要运行的命令

除了数字还有几个特殊的符号:"*"、"/"和"-"、","

  • "*"代表所有的取值范围内的数字
  • "/"代表每的意思,"/5"表示每5个单位
  • "-"代表从某个数字到某个数字
  • ","分开几个离散的数字

注意:定时执行的任务脚本或者命令:

  • 如果存在文件,需要写绝对路径
  • 最好增加重定向日志

五.举例说明

  • 创建cron脚本文件,命名为cronjob.cron
[root@k8s001 ~]# touch cronjob.cron
[root@k8s001 ~]# vi cronjob.cron
*/5 * * * * echo "cronjob test"     表示,每隔15分钟,执行一次打印命令
  • 添加定时任务
[root@k8s001 ~]# crontab cronjob.cron
  • 查看定时任务是否成功
# 通过crontab查看
[root@k8s001 ~]# crontab -l
# 也可以通过查看/var/spool/crob目录下是否生成对应的cron脚本
[root@k8s001 ~]# ls /var/spool/cron
posted @ 2020-07-02 11:36  yuhaohao  阅读(549)  评论(0编辑  收藏  举报