目录
任务调度:系统在某个时间执行特定的命令或程序
任务调度分类:
1.系统工作,比如杀毒。
2.个别用户工作,比如备份数据库
一、crond任务调度
crond定时任务用于反复定时执行指令。
crontab [选项]
-e:编辑crontab定时任务
-l:查询crontab任务
-r:删除当前用户所有的crontab任务
(1)定时任务的时间设定
既然是定时任务,那肯定要指定什么时间执行,对于时间,我们有规定:
*/1 * * * *
第一个“*”:一个小时当中的第几分钟。默认0-59
第二个“*”:一天当中的第几小时。默认0-23
第三个“*”:一个月当中的第几天。默认1-31
第四个“*”:一年当中的第几月。1-12
第五个“*”:一周当中的星期几。默认0-7,其中0和7都表示星期日
如果不是“*”的话,又代表什么意思?
“*”:代表任何时间,比如第一个“*”就代表一个小时中每分钟都执行一次的意思
“,”:代表不连续的时间。比如“0 5,8 * * * ”命令就代表每天的5点0分,8点0分都执行一次
“-”:代表连续的时间间隔。比如“0 5 * * 1-6”命令就代表在周一到周六的凌晨5点0分执行
“* /n”:代表每隔多久执行一次。*/1 * * * *表示每隔一分钟执行一次。这个/n表示他前面这个*的执行间隔
实例1:
看到这个表示创建成功:
然后我们再来查看abc.txt就有内容了
实例2:每隔一分钟吧日期和日历追加到文件中
先写一个脚本:
编写脚本:
再写一个定时任务:
设置一下权限,他就会自己执行了:
(2)crond相关指令
#终止任务调度
crontab -r
#列出当前有哪些任务调度
crontab -l
#重启任务调度
service crond restart
二、at定时任务
(1)at定时任务指令写法
at定时任务是一次性定时任务。对任务队列里的每个任务执行一次。
注1:at的守护线程atd会以后台模式运行,检查任务队列来执行。因此执行at命令的时候一定要保证atd进程的启动
注2:默认情况下,atd守护进程每60秒检查任务队列,有任务时,再检查任务运行时间,如果匹配的上,就执行
at [选项] [时间]
-m:当制定的任务被完成后,将给用户发送邮件,即使没有标准输出
-I:atq的别名
-d:atm的别名
-v:显示任务将被执行的时间
-c:打印任务的内容到标准输出
-V:显示版本信息
-q<队列>:使用指定的队列
-f<文件>:从指定文件读入任务而不是从标准输入读入
-t<时间参数>:以时间参数的形式提交要运行的任务
Ctrl + D:结束at命令的输入
atrm atm编号:删除at任务
ps -ef | grep atd:查看atd进程
(2)at定时任务时间的设置
*1)hh:mm(小时:分钟)。比如04:00
*2)midnight:深夜。noon:中午。teatime:下午4点左右
*3)12小时计时制。即时间后面加AM(上午)或者PM(下午)
*4)指定命令执行的具体日期。比如mm/dd/yy,dd.mm.yy等
*5)相对计时法。now+count time-units。其中now是当前时间,time-units是时间单位,可以是miniutes,hours,days,weeks
*6)直接使用today,tomorrow
(3)实例
实例一:两天后的下午5点执行 /bin/ls /home
输入完之后按两次Ctrl+D,会显示这个:
实例二:删除已经设置的任务