欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

crontab实现linux 自动执行定时任务

程序员文章站 2022-05-15 21:41:20
...

crontab 的介绍

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程**, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

crond 和crontab是不可分割的,crond正是crontab的守护进程

crontab的应用

(1)
首先确定系统是否安装了crontab, 通过下面的命令来查询:

crontab -l

如果返回"no crontab for root" ,说明已经安装crontab服务了
如果返回 “command not found” 说明系统还没有安装crontab。
(2)安装crontab

如果是ubuntu系统.,可以通过以下命令安装和启动crontab服务

# apt-get install cron  

//启动crontab服务(同时还有service cron stop 停止服务,service cron restart 重启服务)

# service cron start  

如果是centos系统,则通过下面的命令执行安装和启动

# yum install -y vixie-cron  

//rontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序

# yum install crontabs

//启动服务   

# /sbin/service crond start   或者  systemctl crond start

//加入开机自动启动

# chkconfig --level 35 crond on

(3)对crond 服务的操作
cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

 service crond start    //启动服务
 service crond stop     //关闭服务
 service crond restart  //重启服务
 service crond reload   //重新载入配置
 service crond status   //查看服务状态 

(4)crontab的使用

我们常用的命令如下:

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的语法规则格式:

 crontab 文件中的行由 6 个字段组成,不同字段间用空格或 tab 键分隔。前 5 个字段指定命令要运行的时间 
       分钟 (0-59) 
       小时 (0-23) 
       日期 (1-31) 
       月份 (1-12) 
       星期几(0-6,其中 0 代表星期日)
       第 6 个字段是一个要在适当时间执行的字符串

具体如下图所示:
crontab实现linux 自动执行定时任务

示例
每1分钟执行: */1 * * * 或者 * * * *
每五分钟执行一次: */5 * * * *
每天上午9点执行:0 9 * * *
每天上午9点10分执行:10 9 * * *
每小时执行一次 : 0 * * * *
每天执行一次: 0 0 * * *
每周执行一次: 0 0 * * 0
每月执行一次: 0 0 1 * *
每年执行一次: 0 0 1 1 *

其他例子
5 * * * * 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。

相关标签: Linux相关