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

Posted Tuki_a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在linux系统里设置延时/定时任务?相关的知识,希望对你有一定的参考价值。

使用at命令设置延时任务

  1. 用法
    at 19:50   ##设置定时任务,ctrl+d任务写入完成!
    at now+1min   ##任务执行时间为现在起过一分钟
    at -l   ##查看任务列表
    at -c 任务号   ##查看任务内容
    at -r 任务号   ##取消任务执行
    在这里插入图片描述

  2. 设置黑白名单

    /etc/at.deny            ##系统中默认存在,在此文件中出现的用户不能执行at
    /etc/at.allow           ##系统中默认不存在,创建文件后,除了名单内的和root用户都不能执行at,并且/etc/at.deny失效
    

    编辑黑名单,将普通用户lucky写进去
    在这里插入图片描述
    添加进去后lucky不能设置任务了
    在这里插入图片描述
    添加进白名单后,黑名单失效
    在这里插入图片描述

使用crontab命令设置定时任务

可以先man 5 crontab查看格式
在这里插入图片描述

  1. crontab 时间表示方式
    从左到右依次是:
    分钟 小时 天 月 周
    在表示周时0和7都是周日
    /2表示每隔两分钟
    *	*	*	*	*				*表示任意,全*表示每分钟(整分过一秒)执行一次
    */2	*	*	*	*				每两分钟执行一次
    */2	09-17	*	*	*			早7点到晚5点每两分钟执行一次
    */2	*/2	*	*	*				每隔2小时每两分钟执行一次
    */2	09-17	3,5	1	5			1月的3号和5号以及1月的每个周五的早上9点到下午5点每隔2min执行一次	
    */2 09-17	*	*	5			每周周五早9晚5执行一次
    
  2. 用法
    首先要保证crond服务是开启的:
    执行systemctl start crond.service开启
    在这里插入图片描述
    crontab -u 用户 -e   ##root用户添加的定时任务
    crontab -u 用户 -l   ##查看root用户设置的定时任务
    crontab -u 用户 -r   ##取消root用户设置的定时任务
    ##任务文件保存在var/spool/cron/username
    在这里插入图片描述
  3. 设置黑白名单
    /etc/cron.deny            ##系统中默认存在,在此文件中出现的用户不能执行cron
    /etc/cron.allow           ##系统中默认不存在,创建文件后,除了名单内的和root用户都不能执行cron,并且/etc/cron.deny失效
    这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
    
    和at的用法一样!
  4. 系统级别的cron(文件方式设定定时任务)
    这个要root用户才可以
    vim /etc/cron.d/file(这个file是root创建的)
    格式:
    *****   username    action
    举例:
    *****   root        rm -fr /mnt/*
    
    在这里插入图片描述
    在文件内写入你想定时的任务即可
    在这里插入图片描述

以上是关于怎么在linux系统里设置延时/定时任务?的主要内容,如果未能解决你的问题,请参考以下文章

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

Linux系统中的定时任务及延时任务详解

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

Celery时区设置问题源码探究

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

Linux中的定时和延时任务