如何让系统定时的完成任务,如何让系统再过一段时间自主的完成某项任务,如下将对系统定时和延时做详细介绍。

####一、at命令####

  1. at命令基本用法

    at -l           ##列出延迟任务

    at -r  任务id     ##删除此id任务

    at -m           ##让无输出的命令不产生邮件

    at -c   任务id    ##查看此id 延迟任务的执行动作

  at -f   文件      ##用文件内容记录的命令作为延迟任务的执行命令

at定时任务,用watch -n 1 任务执行位置 监控

Linux中的定时和延时任务

Linux中的定时和延时任务

Linux中的定时和延时任务

在一分钟后执行 touch /mnt/file{1..5},按ctrl d 结束

Linux中的定时和延时任务

查看将要执行的任务id

Linux中的定时和延时任务

删除将要执行的任务id,终止任务执行,atq 任务id

Linux中的定时和延时任务

清空日志 > /var/spool/mail/root  mailq 

Linux中的定时和延时任务

Linux中的定时和延时任务

at -m 不产生邮件

Linux中的定时和延时任务

Linux中的定时和延时任务

Linux中的定时和延时任务

用student用户编辑文件

Linux中的定时和延时任务

Linux中的定时和延时任务

用文件内容作为延迟任务的自行

Linux中的定时和延时任务

Linux中的定时和延时任务

Linux中的定时和延时任务

Linux中的定时和延时任务

查看延迟任务id at -l

Linux中的定时和延时任务

查看延迟任务执行的动作 at -c 任务id

Linux中的定时和延时任务

2.at命令的使用监控 

默认系统中全部用户都有执行at命令的权力那么如何设定at命令的黑白的名单

##用户黑户单

默认情况下,系统中是不存在黑白名单的,这个名单的路径

/etc/at.deny ##用户黑名单,此名单默认为空,并且在白名单不存在时生效用户

默认情况下,student用户可使用at 命令

Linux中的定时和延时任务

黑名单中禁止student用户登录

Linux中的定时和延时任务

Linux中的定时和延时任务

student用户被禁止使用at命令

Linux中的定时和延时任务

3.at命令的白名单

默认情况下系统是不存在at白名单用户的

但是当白名单出现时,at命令将会让名单中的用户及root用户使用

其他用户不能执行at命令

在白名单中添加student用户

Linux中的定时和延时任务

Linux中的定时和延时任务

root用户可使用at命令

Linux中的定时和延时任务

student用户可使用at命令

Linux中的定时和延时任务

class用户不能使用at命令

Linux中的定时和延时任务

####二、cron####

在约定的时间执行特定的任务

  1. 这个程序是由crond.service 服务提供

  2. 写入程序的时间是永久保存的

    ##设定方式

    crontab -e -u 用户名称(可以不写)

    分钟 小时  天  月  周   事件

    30   7    *   *   *   rm -fr /mnt/*   ##每天7:30删除/mnt/的所有内容

    30   7   3,16  *   *   rm -fr /mnt/*  ##每月的3号和16号7:30删除/mnt/的所有内容

    30   7   3-16  *   *   rm -fr /mnt/*  ##每月的3号到16号7:30删除/mnt/的所有内容

    30   7   3,16  2  3   rm -fr /mnt/*  ##2月的3号和16号以及二月的每个周三的7:30删除/mnt/的所有内容

    */30 *   *     *  1-5  rm -fr /mnt/*  ##周一到周五每隔30分钟的7:30删除/mnt/的所有内容

开启服务 systenctl start crond.service

Linux中的定时和延时任务

写入程序 crontab -e

Linux中的定时和延时任务

Linux中的定时和延时任务

crontab -l ##列出当前用户的cron任务

crontab -r##删除当前crontab任务

/var/spool/cron/* ##cront任务记录文件存放的位置

Linux中的定时和延时任务

也可以根据存放位置进行查看

Linux中的定时和延时任务

监控 watch -n 1 'ls -l /mnt/'

Linux中的定时和延时任务

2.cron的黑白名单

默认情况下系统只存在黑名单,当白名单被建立,黑名单失效

##黑名单

/etc/cron.deny  ##在此名单中的用户不能执行crontab

class用户写入黑名单

Linux中的定时和延时任务

Linux中的定时和延时任务

class 不能执行crontab

Linux中的定时和延时任务

student用户可执行

Linux中的定时和延时任务

Linux中的定时和延时任务

##白名单

/etc/cron.allow  ##用户白名单,当此名单出现,除root用户及名单中的用户其他用户不能使用crontab命令

白名单中写入student

Linux中的定时和延时任务

Linux中的定时和延时任务

student用户可使用crontab

Linux中的定时和延时任务

Linux中的定时和延时任务

class用户不能使用crontab命令

Linux中的定时和延时任务

3.文件方式定义crontab

vim /etc/spool/cron/用户名称  ##以某个用户身份执行cron,文件名称必须和用户名称一致

分   时   天   月   周    动作

vim /etc/cron.d/文件    ##设定多个用户身份执行cron

<分> <时> <天> <月> <周> <用户> <动作>

在/mnt/执行某个动作,给/mnt/加上可执行权限

Linux中的定时和延时任务

Linux中的定时和延时任务

以student用户执行cron

Linux中的定时和延时任务

Linux中的定时和延时任务

watch -n 1 'ls -l /mnt/'

Linux中的定时和延时任务

Linux中的定时和延时任务

用追加的方式导入

Linux中的定时和延时任务

Linux中的定时和延时任务

以脚本的形式执行cron vim cron.sh

Linux中的定时和延时任务

Linux中的定时和延时任务

运行脚本

Linux中的定时和延时任务

监控可得,脚本命令执行成功


Linux中的定时和延时任务

/etc/cron.d/文件,有一些管理把我们每月,每周,每天,每小时要执行的文件分别放入不同的文件中来执行

Linux中的定时和延时任务