Linux定时任务Crontab

本文详细介绍了crontab文件的组成及配置方法,包括crontab文件的结构、环境变量设置、命令语法以及示例说明。此外还介绍了crontab命令的使用方法,如查看、编辑和删除定时任务。

crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常是/etc/crontab,而这个文件只能由系统管理员修改。
/etc/crontab文件中前三行:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

第一行SHELL变量指定了系统要使用哪个shell,这里是bash。
第二行PATH变量制定了系统执行命令的路径。
第三行MAILTO变量制定了crond的任务执行信息将通过邮件发送给root用户, 如果该变量为空,则表示不发送任务执行信息给用户。

crontab命令

crontab [-u user] [-l| -r| -e] [-i]
-l: 列出当前用户的计划任务
-e: 编辑当前用户的计划任务
-r: 删除当前用户的所有计划任务。即删除/var/spool/cron/USERNAME文件
-u: 管理制定用户的计划文件,仅root有权限
-i: 在使用-r选项删除所有任务时提示用户确认。

crontab -e创建的计划任务会默认放在/var/spool/cron/目录下以用户名命名的文件中。

crontab语法

.---------------- 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

在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。指定的时间点不能被步长整除时,其意义将不存在。例如 */7 * * * *

注意:
a.每行定义一个周期性任务,共7个字段。user-name默认当前用户
b.执行计划任务的环境变量不同于用户登录后获得的环境,因此建议命令使用绝对路径
c.执行结果会发送邮件给mailto指定的当前用户

示例:

*/5 * * * *         每5分钟执行一次
3 * * * *           每小时的第3分钟执行一次
3 4 * * 5           每周5的4点3分执行一次
5 6 7 * *           每月的7号的6点5分执行一次
7 8 9 10 *          每年的10月9号8点7分执行一次
9 8 * * 3,7         每周3和周日的8点9分
0 8,20 * * 3,7      每周3和周日的8点和20点执行一次
0 9-18 * * 1-5      周一到周五的9-18点,即工作时间内的每小时
0 7 25 12 *         每年的12月25号7点执行一次

转载于:https://www.cnblogs.com/thunderLL/p/9470336.html

### 使用 `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、付费专栏及课程。

余额充值