crond任务调度

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:
系统工作:有些重要的工作必须周而**复始地执行**。如病毒扫描等
个别用户工作:个别用户可能希望执行某些程序,比如对mysq|数据库的备份。

基本语法
crontab [选项]

常用选项
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务

重启任务调度
service crond restart

参数占位符

image.png
image.png

案例
image.png

实例:

例1:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中
两条指令可以编写shell脚本,让crond定时调用;
image.png
image.png
注:shell脚本编写后要赋予用户可执行它的权限

例2:每天凌晨2:00将mysq|数据库testdb , 备份到文件中
0 2 * mysqldump -u root -proot testdb > /home/db.bak

at定时任务

概述

  • at命令是一次性定时计划任务, at的守护进程atd会以后台模式运行,检查作业队列来运行。
  • 默认情况下 , atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  • at命令是一 次性定时计划任务,执行完一个任务后不再执行此任务了
  • 在使用at命令的时候 ,一定要保证atd进程的启动,可以使用相关指令来查看(ps -ef|grep atd

at命令格式

at [选项] [时间]
两次Ctrl+ D(退出加回车的快捷键)结束at命令的输入

atq 查看系统中有无执行的任务
atrm 编号 删除已设置好的任务

at命令选项
image.png

at时间定义
at指定时间的方法:

  1. 接受在当天的hh:mm (小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。
  2. 使用midnight (深夜), noon (中午), teatime (饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
  3. 采用12小时计时制,即在时间后面加上AM (上午)或PM(下午)来说明是上午还是下午。
  4. 指定命令执行的具体日期,指定格式为 month day(月日)或 mm/dd/yy (月/日/年)或dd.mm.yy(日.月年), 指定的日期必须跟在指定时间的后面
  5. 使用相对计时法。指定格式为: now + count time-units , now就是当前时间, time-units是时间位,这里能够是minutes (分钟)、hours (小时)、days (天)、weeks (星期)。count是时间的数量,几天,几小时。例如:now+5minutes
  6. 直接使用today (今天)、tomorrow (明天)来指定完成命令的时间。