定时任务调度
- crond 任务调度
- 概述
- 基本语法
- 常用选项
- 快速入门
- 应用实例
- crond 相关指令
- at 定时任务
- 基本介绍
- at 命令格式
- at 命令选项
- at 时间的定义
- 其他指令
crond 任务调度
crontab 进行 定时任务调度
概述
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行
- 个别用户工作:希望定时执行某些程序
基本语法
crontab [选项]
常用选项
-e
: 编辑crontab定时任务-l
:查询crontab任务,列出任务列表-r
:删除当前用户所有的crontab任务
快速入门
特殊符号的说明
特殊符号 | 含义 |
---|---|
* | 表示任何时间。比如,当第一占位符为*时,就表示一小时中每分钟的意思 |
, | 表示不连续的时间。比如命令:0,8,12,16 * * * ,表示在每天的8点、12点、16点 都执行一次命令 |
- | 表示连续的时间。 比如命令:0 5 * * 1-6 表示在每周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如命令:*/10 * * * * , 代表每隔10分钟就执行一遍命令 |
应用实例
- 每隔一分钟就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * * date >> /tmp/mydate
- 每隔一分钟,将当前日期和日历都追加到/home/mycal 文件中
- 步骤
vim /home/my.sh
写入内容,date >> /home/mycal 和 cal >> /home/mycal- 给my.sh增加执行权限,
chmod u+x /home/my.sh
crontab -e
增加命令:*/1 * * * * /home/my.sh
crond 相关指令
crontab -r
: 终止任务调度crontab -l
: 列出当前有哪些任务调度service crond restart
: 重启任务调度
at 定时任务
基本介绍
- at 命令是一次性定时计划任务,at的守护进程会以后台模式运行,检查作业队列来运行。
- 默认情况下,atd守护进程每60s检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间相匹配,则运行此作业。
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
- 在使用at命令时,一定要保证atd进程的启动,可以通过指令
ps -ef | grep atd
来进行检查。
at 命令格式
at [选项] [时间]
当输入完成时,输入ctrl + D
表示输入命令的结束 (输入两次)
当输入at命令时,想要进行删除的话,需要按ctrl+del
at 命令选项
at 时间的定义
- 接受在当天的hh:mm式的时间指定。如果时间已经过去,将会放到第二天执行。
- 使用比较模糊的词语来指定时间 比如:midnight、noon等
- 采用12小时制,在时间后面加上am或pm来说明是上午还是下午。例如:6pm
- 指定命令执行的具体日期
- mm/dd/yy 或 dd.mm.yy
- 指定的日期必须跟在指定时间的后面:4:00 2021-03-1
- 使用相对计时法
- 指定格式:
now + 时间大小 时间单位
- 时间单位:minutes、hours、days、weeks
- 比如:now + 5 minutes 含义:5分钟后执行指令
- 指定格式:
- 直接使用today、tomorrow 来指定完成的时间
其他指令
atq
: 显示系统中没用执行的工作任务atrm 编号
: 删除已经设置的任务