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