定时计划任务概念及分类
首先通过概念我们可以将定时计划任务分为两类:
1、定时执行一次任务:at ,(batch)
2、 周期性的运行某任务:crontab
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘,日志清理等。/etc/crontab文件就是系统任务调度的配置文件
用户任务调度:用户定期要执行的工作,比如用户数据备份,定时邮箱提醒等。用户可以使用crontab工具来定制自己的任务计划。所有用户定义的crontab文件都被保存在/var/spool/cron目录中
定时任务语法及配置文件详解
1、mail命令:
使用mail命令时,首先必须将sendmail启动。service start sendmail
可能有些用户没有安装,通过 yum install sendmail -y 安装。
选项
选项 | 作用 |
---|---|
- s | 表明邮件主题 |
- c | 写明抄送地址 |
- b | 写明密送地址 |
常见的发信格式
mail -s test user1@user1.com //第一种,直接在shell中编辑,编辑完按Ctrl D结束
echo "mail content" | mail -s test user1@user1.com //第二种,使用管道方法
mail -s test user1@user1.com < file //第三种,将file文件内容作为邮件发信
2、at命令
a、语法
at [选项] [参数]
b、选项
选项 | 作用 |
---|---|
- V | 印出版本编号 |
- q | 使用指定的伫列(queue)来存储,at的资料是存放在所谓的queue中,使用者可以同时使用多个queue,,而queue的编号为a-z,A-Z共52个 |
- m | 即使程序/指令执行完成后没有输出结果,也要寄封信给使用者 |
- f file | 读入预先写好的命令档。使用者不一定使用交互模式来输入,可以经所有的指定写入档案后再一次性读入 |
- l | 列出所有指定(也可以使用atq) |
- d | 删除指定(也可以用atrm) |
- v | 列出所有已完成但未删除的指定 |
c、相关命令
batch:在系统负荷允许的情况下执行at任务,即就是在系统空闲时才执行at任务
3、crond命令:(Linux系统是由cron(crond)系统服务来控制的。Linux系统上原本就有很多计划性工作,因此crond这个系统服务是默认启动的,为用户提供的使用命令crontab)
a、查看配置文件
cat /etc/crontab
b、时间表示法:
(1)特定值
给定时间点的有效取值范围内
(2)*
给定时间点的有效取值范围内,表示“所有”
(3)离散取值
在时间点上使用逗号分隔:#,#,#
(4)连续取值
在时间点上使用 - 来链接:#-#
(5)表示步长
/# ,#即步长,eg:在分钟上定义,/2 :即为每两分钟执行一次
c、语法结构图
d、如果没有安装服务规则:um install crontab -y
e、服务操作说明:
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //启动服务
f、选项:
选项 | 作用 |
---|---|
- e | 编辑任务 |
- l | 列出所有任务 |
- r | 移除所有任务;即删除/ver/spool/cron/USERNAME文件 |
- i | 在使用 - r 时提醒用户确认 |
- u user | root可以指定用户管理cron任务 |