LINUX学习笔记之定时任务调度
一、crond任务调度
某个时间执行特定的任务
1.语法
crontab [选项]
- -e 编辑定时任务
- -l 查询定时任务
- -r 删除当前用户所有的crontab任务
2.入门例子
*/1 * * * * ls -l /etc/ > /tmp/to.txt
- 第一个* 一小时当中的第几分钟 0-59
- 第二个 * 一天当中第几小时 0-23
- 第三个* 一个月中的第几天 1-31
- 第四个* 一年当中第几个月 1-12
- 第五个* 一周中的星期几 0-7 0和7都代表星期日
* 代表任何时间
,代表不连续的时间
- 代表连续的时间范围
*/n 每隔多久执行一次 单位分钟
脚本
vim /home/my.sh
date >> /home/mycal
cal >> /home/mycal
3.相关指令
- crontab -r 终止任务调度
- crontab -l 列出当前所有的任务调度
- service crond restart 重启任务调度
二、at定时任务
是一次性定时任务,利用守护进程atd在后台进行来实现,每60s检查一次作业队列。使用时要保证atd进程的启动,可以利用 ps -ef | grep atd 来检测atd是否在后台运行
1. 语法
at [选项] [时间]
Ctrl + D 来结束at命令的输入,按两次
- -m 指定任务完成后,给用户发送邮件
- -I atq的别名 查看当前用户的任务
- -d atrm的别名,删除任务如 atrm 4
- -v 显示任务将被执行的时间
- -V 显示版本信息
- -c打印任务的内容到标准输出
- -q <队列> 使用指定队列
- -f <文件> 从指定文件读入任务而不是从标准输入读入
- -t <时间参数> 以时间参数的形式提交要运行的任务
2.at时间定义
- 接收在当天的hh:mm的形式指定,如果今天的时间已经过去,则明天执行
- 使用 midnight,noon,teatime(下午4点)等模糊词
- 采用12小时计时制,时间加AM,PM指定上下午
- month day 或 mm/dd/yy或dd.mm.yy 如04:00 2022-04-26
- 使用now + count + minutes/hours/days/weeks
- 使用today,tomorrow来指定
3.入门例子
at 5pm tomorrow
at> date > /root/date100.log