crontab--定时任务

2023-05-18 14:13:29 浏览数 (2)

简介

cron:计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 cron 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。

crond:crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语chronos(χρόνος),原意是时间。而crond正是它的守护进程。

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

通俗理解: cron是一种规范,规定计划任务的规范。 crond是linux系统中实现cron规范的一个守护进程,会开启自启。 crontab是linux系统提供的一个操作crond进程的工具,通过这个工具用户可以添加自己的定时任务。

详解

cron定义规范

second minute hour day month week

second

表示秒钟,可以是从0到59之间的任何整数

minute

表示分钟,可以是从0到59之间的任何整数

hour

表示小时,可以是从0到23之间的任何整数

day

表示日期,可以是从1到31之间的任何整数

month

表示月份,可以是从1到12之间的任何整数

week

表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日

特俗符号:

星号(*)

代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作

逗号(,)

可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-)

可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/)

可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次

注意: 各字段中间以空格隔开。crontab中没有秒,从分钟开始。

使用方法

代码语言:javascript复制
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]

Bash

创建crontab文件,执行命令 crontab crontab文件 。 crontab文件可以是普通的文本文件。

示例:

代码语言:javascript复制
touch crontab.file   #创建名为crontab.file文件
echo '* * * * * /bin/echo `date` >> /aaa.txt' > crontab.file     #将定时任务命令输入到crontab.file文件
crontab crontab.file     #用crontab命令执行定时任务命令

Bash

依次执行上列命令,会发现根目录下的aaa.txt文件会记录每分钟的时间。

注意:所建立的crontab文件中,每一行都代表一项任务

其他命令参数讲解

-u user

用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般有root用户来运行

-e

编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件

-l

显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容

-r

从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件

-i

在删除用户的crontab文件时给确认提示

代码语言:javascript复制
# crontab -l     #将定时任务输出
* * * * * /bin/echo `date` >> /aaa.txt

# crontab -r     #删除定时任务
# crontab -l     #再输出定时任务提示没有
no crontab for root

Bash

crontab -e #编辑定时任务

编辑定时任务,按 ctrl x 退出。

结束语

定时任务的应用场景很多,比如定时备份文件、定时重启某服务。 一个还用的cron表达式在线生成网站----clickme。

0 人点赞