Linux定时任务Crontab

一.crond系统服务

crond是Linux下用于周期性执行计划任务的或等待处理事件的守护进程。

因为Linux系统上原本就有很多计划任务,因此crond服务默认是开启的。操作系统安装完毕,自动安装crond。

Crond进程每分钟定时检查是否有执行任务,如有自动执行。


二.crontab文件

crontab -e 编辑查看crontab文件内容,每行一个定时任务。

每个定时任务有六个字段,前五段是时间设定段,第六段是命令段。

minute hour day month week command

minute:分钟,0-59

hour:小时,0-23

day:日期,1-31

month:月份,1-12

week:星期,0-7,0或7表示星期天

command:要执行的命令,多为编写的脚本文件


上面的几个字段中,可以使用星号(*),逗号(,),横杠(-),斜线(/)做特殊处理

星号:代表所有值,***** command表示每分钟执行一次定时任务,1*****代表每小时的第一分钟执行定时任务,即每小时执行一次

逗号:指定列表范围,如1,2,3,5,6 **** command 代表每小时的第一二三五六分钟各执行一次定时任务,即每小时五次

横杠:表示整数范围,**2-4** command 表示每个月的2号3号四号执行定时任务,即每月3次

斜线:间隔频率,* 0-23/2 *** command 表示每两小时执行一次定时任务。*/10 **** command 表示每十分钟执行一次定时任务。


三.crontab命令

crontab -e 进入编辑模式,可新增,删除,修改定时任务


注意:

1. crontab命令中要注意执行文件的目录和所需环境

2. %表示换行,如果要用需要转义\%,如date中的%Y%m%d要写为\%Y\%m\%d

3.当定时任务不按计划执行时,可以将错误原因打印到指定文件中,如下所示:

* * * * * command > test.log 2>&1

解释:test.log表示 执行command产生的标准输出重定向到test.log中

2>&1 表示将标准错误重定向到标准输出(test.log)中

加上>test.log 2>&1的结果是,不论定时任务是否执行成功,都会将结果记录到test.log中

### 使用 `crontab` 命令管理定时任务 #### 编辑用户的定时任务列表 编辑当前用户的定时任务可以通过 `-e` 参数实现。这会打开默认的文本编辑器来修改用户的 crontab 文件[^1]。 ```bash crontab -e ``` #### 列出用户的定时任务 查看当前用户已设定的所有定时任务可以使用 `-l` 参数[^2]。 ```bash crontab -l ``` #### 删除用户的定时任务 移除当前用户的全部定时任务可借助 `-r` 参数完成;如果希望删除前得到确认提示,则应加上 `-i` 选项[^3]。 ```bash crontab -r # 直接删除所有任务,不询问 crontab -ir # 提示是否真的要删除这些任务 ``` #### 替换用户的定时任务 当指定一个文件作为参数传递给 `crontab` 命令时,默认行为是用此文件的内容替换现有的 crontab 条目。例如: ```bash crontab my_tasks.txt ``` 这里假设 `my_tasks.txt` 是一个包含了有效 cron 表达式的纯文本文件[^4]。 #### 设置具体的定时任务表达式 为了定义何时以及如何执行某个特定的任务,在 crontab 文件里每行代表一条记录,格式如下所示: | 字段 | 含义 | |--|--------------------------------------------------| | minute | 每个小时中的哪一分钟 | | hour | 每日中的哪一个钟头 | | day of moth| 每月中具体某一天 | | month | 年份里的某一月份 | | day of week| 星期几 | 各字段允许使用的数值范围也已在表格中给出。通过组合不同的时间单位,能够精确控制任务触发的时间点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值