Linux中的定时和延时任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中的定时和延时任务相关的知识,希望对你有一定的参考价值。

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

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

  1. at命令基本用法

    at -l           ##列出延迟任务

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

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

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

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

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

技术分享

技术分享

技术分享

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

技术分享

查看将要执行的任务id

技术分享

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

技术分享

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

技术分享

技术分享

at -m 不产生邮件

技术分享

技术分享

技术分享

用student用户编辑文件

技术分享

技术分享

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

技术分享

技术分享

技术分享

技术分享

查看延迟任务id at -l

技术分享

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

技术分享

2.at命令的使用监控 

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

##用户黑户单

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

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

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

技术分享

黑名单中禁止student用户登录

技术分享

技术分享

student用户被禁止使用at命令

技术分享

3.at命令的白名单

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

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

其他用户不能执行at命令

在白名单中添加student用户

技术分享

技术分享

root用户可使用at命令

技术分享

student用户可使用at命令

技术分享

class用户不能使用at命令

技术分享

####二、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

技术分享

写入程序 crontab -e

技术分享

技术分享

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

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

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

技术分享

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

技术分享

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

技术分享

2.cron的黑白名单

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

##黑名单

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

class用户写入黑名单

技术分享

技术分享

class 不能执行crontab

技术分享

student用户可执行

技术分享

技术分享

##白名单

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

白名单中写入student

技术分享

技术分享

student用户可使用crontab

技术分享

技术分享

class用户不能使用crontab命令

技术分享

3.文件方式定义crontab

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

分   时   天   月   周    动作

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

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

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

技术分享

技术分享

以student用户执行cron

技术分享

技术分享

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

技术分享

技术分享

用追加的方式导入

技术分享

技术分享

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

技术分享

技术分享

运行脚本

技术分享

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


技术分享

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

技术分享



以上是关于Linux中的定时和延时任务的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系统延时任务和定时任务

Linux(RadHat)基础学习—延时任务和定时任务

怎么在linux系统里设置延时/定时任务?

linux中系统延时任务及定时任务

linux学习日记之系统定时延时任务

《Linux菜鸟入门2》系统定时延时任务