定时任务调度
crond任务调度
1.概述
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对MySQL数据库的备份。
2.基本语法 : crontab [选项]
3.常用选项
-e 功能:编辑crontab定时任务
-l 功能:查询crontab任务
-r 功能:删除当前用户所有的crontab任务
4.快速入门
设置任务调度文件:/etc/crontab
设置个人任务调度:执行crontab -e文件
接着输入任务到调度文件 如:*/1****ls -l /etc/ > /tmp/to.txt
5.参数细节说明
-
① 5个占位符说明
-
项目 含义 范围
- 第一个"*" 一小时当中的第几分钟 0-59
- 第二个"*" 一天当中的第几小时 0-23
- 第三个"*" 一个月当中的第几天 1-31
- 第四个"*" 一年中的第几月 1-12
- 第五个"*" 一周中的星期几 0-7(0和7都代表星期日)
-
② 特殊符号的说明
-
特殊符号
* 代表任何时间。比如第一个*代表一小时中每分钟都执行一词次的意思
' 代表不连续的时间。比如“0 8,12,16***命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
- 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令。
*/n 代表间隔多久执行一次。比如“*/10 * * * *命令”,代表每隔10分钟就执行一遍命令
6.应用实例
-
案例1:每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
-
指令: */1 * * * * date >> /tmp/mydate
-
案例2:每隔一分钟,将当前日期和日历都追加到/home/mycal文件中
-
指令:
-
(1).vim /home/my.sh 写入内容 date >> /home/mycal 和 cal >> /home/mycal
-
(2).给my.sh增加执行权限, `chmod u+x /home/my.sh
-
(3). crontab -e 增加 */1* * * * /home/my.sh
-
案例3:每天凌晨2:00将MySQL数据库testab,备份到文件中
-
指令提示: mysqldump -u root -p 密码 数据库 > /home/db.bak
-
指令:
-
(1). crontab -e
-
(2). 0 2 * * * mysqldump -u root -p 123456 testdb >/home/db.bak
-
7.crond相关指令
-
crontab -r 功能:终止任务调度
-
crontab -l 功能:列出当前有哪些任务调度
-
service crond restart [重启任务调度]
at定时任务
1.基本介绍
-
1.at命令是一次性定时计划任务,at的守护进程ad会以后台模式运行,检查作业队列来运行。
-
2.默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
-
3.at命令是一次性定时计划任务,执行完一个任务之后不再执行此任务了。
-
4.在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看。
-
ps -ef 功能:检测当前正在运行的进程有哪些
2.at命令模式
at [选项] [时间] Ctrl + D 结束at命令的输入
3.at命令选项
-
-m 含义:当指定的任务被完成后,将给用户发送邮件,即使没有标准输出
-
-I 含义:atq的别名
-
-d 含义:atrm的别名
-
-v 含义:显示任务将被执行的时间
-
-c 含义:打印任务的内容到标准输出
-
-V 含义:显示版本信息
-
-q<队列> 含义:使用指定的队列
-
-f<文件> 含义:从指定文件读入任务而不是从标准输入读入
-
-t<时间参数> 含义:以时间参数的形式提交要运行的任务
-
*at时间定义
-
at指定时间的方法:
-
1.接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。比如:4:00
-
2.使用midnight深夜,noon中午,teatime饮茶时间等比较模糊的词语来指定时间。
-
3.采用12小时计时制,即在时间后面加上AM上午或PM下午来说明是上午还是下午。例如:12pm
-
4.指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月 日 年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。如:04:00 2021-03-01
-
5.使用相对计时法。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now + 5 minutes
-
6.直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
4.应用实例:
-
案例1:2天后的下午5点执行/bin/ls/home
-
案例2:atq命令来查看系统中没有执行任务的工作进程
-
指令:atq
-
案例3:明天17点钟,输出时间到指定文件内 比如/root/date100.log
-
指令:
-
at 5pm tomorrow
-
at> date > /root/date100.log
-
案例4:2分钟后,输出时间到指定文件内 比如/root/date200.log
-
指令:
-
at now + 2 minutes
-
at> date > /root/date200.log
-
案例5:删除已经设置的任务, atrm 编号
-
例如 atrm 1
-
注意要输入 两次Ctrl + D 才能结束at命令的输入
posted @
2021-05-17 09:05
Hui_Li
阅读(
85)
评论()
收藏
举报