Linux学习笔记9
定时任务调度
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
-
指令:
-
at 5pm + 2days
-
-
at> /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命令的输入
-