一、crontab任务调度(多次性的任务调度)
1、任务调度的概念
任务调度:系统在某个时间执行的特定的命令或程序。
分类:
1、系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等;
2、个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份等;
2、crontab基本语法(多次任务调度)
crontab 选项
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 Vi/Vim,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
相关命令
crontab -r 终止任务调度
crontab -l 列出当前有哪些任务调度
service crond restart 重启任务调度
3、快速入门
1)设置任务调度文件:/etc/crontab
2)设置个人任务调度,执行 crontab -e
3)接着输入任务到调度文件
如:*/l **** ls -l /etc/ > /tmp/to.txt
意思是:每小时的每分钟执行ls -l /etc > /tmp/to.txt命令
参数细节说明:
5个占位符说明:
特殊符号说明:
每个一分钟执行一次:
/tmp目录下面to.txt文件已经生成了;查看to.txt内容是否与/etc/下面的目录一样
特殊时间执行案例:
4、应用实例
案例一:每个1分钟,就将当前的日期信息,追加到/tmp/mydate文件中;
crontab -e --> */1 * * * * date >> /tmp/mydate.txt
案例二:每隔1分钟,就将当前日期和日历都追加到/home/mycal文件中;
通过写脚本文件的方式:
手动执行脚本,在tmp目录下面就有mycal文件了
在设置任务调动脚本;
查看调度结果:
案例三:每天凌晨2:00将mysql数据库testdb,备份到文件中,提示:指令为mysqldump -u root -p密码 数据库>>/home/db.bak
crontab -e --> 0 2 * * * mysqldupm -u root -p密码 testdb >>/home/db.bak
二、at定时任务
1、基本介绍
- at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队来运行;
- 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业;
- at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了;
- 在使用at命令的时候,一定要保证atd进程启动,可以使用相关命令来查看
- 示意图:
2、at命令格式:
at 选项 时间
at命令的参数表:
Ctrl+D 输入两次结束at命令的输入;
查看atd进程是否运行:
ps -ef | grep atd //可以检测 atd进程是否在运行
3、at时间定义
at指定时间的方法:
- 接受在当天的 hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
- 使用 midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午 4 点)等比较模糊的词语来指定时间。
- 采用 12 小时计时制,即在时间后面加上 AM(上午)或 PM(下午)来说明是上午还是下午。 例如:12pm
- 指定命令执行的具体日期,指定格式为 month day(月 日)或 mm/dd/yy(月/日/年)或 dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-05-12
- 使用相对计时法。指定格式为:now + count time-units ,now 就是当前时间,time-units 是时间单位,这里能够是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count 是时间的数量,几天,几小时。 例如:now + 5 minutes
- 直接使用 today(今天)、tomorrow(明天)来指定完成命令的时间。
4、应用案例
案例 1:2 天后的下午 5 点执行 /bin/ls /home
Ctrl+D输入两次退出at命令输入;查看定时任务创建成功是job3,atq可以查看at起的定时任务;
如果在at命令输入错误可以通过Ctrl+BackSpace键可以删除;
at 5pm+2days
案例 2:atq 命令来查看系统中有没有执行的工作任务;
案例 3:明天 17 点钟,输出时间到指定文件内 比如 /root/date100.log;
at 5pm tomorrow
案例 4:2 分钟后,输出时间到指定文件内 比如 /root/date200.log;
at now + 2 minutes
2分钟后job5任务执行,date200.log文件生成
案例 5:删除已经设置的任务 , atrm 编号;
删除编号为2的工作任务:
atrm 2