1.基础知识
linux系统的定时任务就像我们在日常生活中使用的闹钟一样,一到固定的时间就会有相应的动作
linux系统的延时任务就像闹钟响了之后不想起床,延迟几分钟再响
定时任务是永久的,延时任务是一次性的

2.利用at命令设置定时任务和延时任务的详解
(1)at命令用于定时任务
步骤一:采用watch -n 1 ls -l /mnt/监控命令,监控该过程

centos定时任务每天1点执行 定时任务 linux_定时任务


步骤二:先用date查看一下desktop主机的当前时间

centos定时任务每天1点执行 定时任务 linux_centos定时任务每天1点执行_02

步骤三:at 时间 回车,此时就可以建立任务了 ctrl+d退出

centos定时任务每天1点执行 定时任务 linux_定时任务_03

centos定时任务每天1点执行 定时任务 linux_计划任务_04

步骤四:利用at命令操作定时任务

centos定时任务每天1点执行 定时任务 linux_定时任务_05

centos定时任务每天1点执行 定时任务 linux_计划任务_06

centos定时任务每天1点执行 定时任务 linux_定时任务_07

centos定时任务每天1点执行 定时任务 linux_计划任务_08

(2)at命令用于延时任务
步骤一:设定延时任务

centos定时任务每天1点执行 定时任务 linux_定时任务_09

步骤二:查看延时任务是否完成

centos定时任务每天1点执行 定时任务 linux_计划任务_10

步骤三:at now+1min rm -rf *

centos定时任务每天1点执行 定时任务 linux_centos定时任务每天1点执行_11

centos定时任务每天1点执行 定时任务 linux_root用户_12


(3)at任务的黑白名单/etc/at.deny        ##黑名单,系统中默认存在,在此文件中出现的用户不能执行at

/etc/at.allow        ##白名单,系统中默认不存在,在此文件中出现的普通用户能执行at,只有在名单中的用户可以,并且/etc/at.deny失效

centos定时任务每天1点执行 定时任务 linux_定时任务_13

centos定时任务每天1点执行 定时任务 linux_定时任务_14

centos定时任务每天1点执行 定时任务 linux_centos定时任务每天1点执行_15

centos定时任务每天1点执行 定时任务 linux_root用户_16


注意:

/etc/at.allow存在/etc/at.deny就失效
系统本来就没有/etc/at.allow,当这个文件建立之后即使是空的,其他普通用户也不能使用at命令了,此时只有超级用户是可以定时的
当student同时出现在allow和deny当中时,deny会失效,因此student可以使用at命令

3.利用crontab命令设定系统定时任务(永久)
执行定时任务的时候,crond.service这个服务必须开启
man 5 crontab可以查看这个命令的用法
cat /var/spool/cron/root定时任务是放在这个文件里面的
删除任务的同时文件也就没有了,删除文件的同时任务也就没有了

(1)系统控制crontab的服务

crond.service            ##当程序开启时定时任务生效

centos定时任务每天1点执行 定时任务 linux_centos定时任务每天1点执行_17

(2)crontab 命令后面所跟的参数

e

表示编辑

u

表示用户

l

表示列出

r

表示删除

(3)crontab命令的具体格式

crontab -e -u root

为root用户创建计划任务

crontab -l -u root

列出root用户的计划任务

crontab -r -u root

删除root用户的计划任务

(4)crontab 时间表示方式

分钟 时 日 月 星期几    具体时间
* * * * *    每分钟
*/2 * * * *    每两分钟
*/2 09-17 * * *    早7-晚5每两分钟
*/2 */2 * * *    每隔2小时每两分钟
*/2 09-17 3,5 1    5月的每个周四以及三月1号
*/2 09-17 * * 5    每周周五早9晚5

(5)实验步骤
步骤一:systemctl status crond.service,systemctl start crond.service(这个服务必须开启)

centos定时任务每天1点执行 定时任务 linux_root用户_18

步骤二:crontab -e -u root 为root用户创建定时任务

centos定时任务每天1点执行 定时任务 linux_定时任务_19

步骤三:出来一个vim编辑,然后写入要定时的任务格式如上

centos定时任务每天1点执行 定时任务 linux_root用户_20

步骤四:crontab -l -u root列出root用户的定时任务

centos定时任务每天1点执行 定时任务 linux_centos定时任务每天1点执行_21

步骤五:cat /var/spool/cron/root在这个文件里面可以看到定时任务

centos定时任务每天1点执行 定时任务 linux_计划任务_22

步骤六:crontab -r -u root 删除root用户的定时任务

centos定时任务每天1点执行 定时任务 linux_root用户_23