linux中系统延时及定时任务

一:系统延时任务

1.at命令

**at + time at加具体时间(at 11:12)表示在11:12分执行某个任务 “回车“
写入某个具体任务(rm-fr /mnt/*)表示在11:12分对/mnt/下的文件清空。“回车”
ctrl+d保存**
at命令的用法:*重点内容*
at -l | atq #查看当前任务
atrm | at -d +任务号 取消指定任务
at -c +任务号 查看任务内容
at now+1min 延时一分钟
at -f file 延时执行文件中的内容(文件不是脚本)
at -m * 延时命令没有输出时也发送邮件给执行者*
at -M 延时命令即使有输出也不发送邮件给执行者*
这里写图片描述
表示at命令中某个时间执行某个任务

这里写图片描述
at -d 5 表示取消指定的第五个任务atq则为查看任务

2.at命令的执行权力设定

黑名单本身存在,而白名单本身不存在,但是当白名单被建立出来,黑名单立即失效,以白名单中的用户名为准,所以白名单的优先级高于黑名单。
/etc/at.deny (直接在文件中写用户名) ##用户黑名单,此名单中的用户不能执行at命令
这里写图片描述
图中加入黑名单的用户为tommy,所以tommy执行不了at命令,而用户student却可以执行at命令。

/etc/at.allow ##用户白名单,此名单默认不存在,建立后所有用户均没有at命令执行权限,此名单中的用户才有at命令执行权限
这里写图片描述
图中加入白名单的用户也为tommy,此时tommy可以执行at命令。而用户student不可以执行at命令。这也应证了白名单的优先级高于黑名单。

二:定时任务

与一中的延迟任务相比,定时任务是永久的,而延迟任务是临时的
而且定时任务程序crond,在系统中每分钟做任务扫描,所以最短时间为一分钟。

1.发起方式
发起方式一
crontab -u username -e ##username用户建立定时任务
此命令会进入一个文本,该文本的填写方式是
这里写图片描述
图片里表示的意思是,在系统里的/mnt/下每分钟建立一个file文件,但是由于每分钟建立的文件名称都相同,在第二分钟里由于系统中/mnt/不能存在多个相同的文件名称,所以除了第一分钟可以看出明显效果,剩下的每分钟都看不到效果。
分 时 天 月 周 + 命令
crontab -u username -r ##查看某用户的定时任务
crontab -u username -l ##删除某用户的定时任务

发起方式二
vim /etc/cron.d/filename 重点内容创建一个文件并在里面填写,此文件可以填写多个用户
填写方式是:
这里写图片描述
图片中* * * * * 表示每分钟的意思,总体含义是root用户每分钟在/mnt/下建立五个文件,类似于发起方式一,只有在第一分钟可以看得出效果。

!当然,用“*”表示某个具体或者有规律的时间有多种表示方式,具体如下图:

这里写图片描述

例:* * * * * 表示每分钟都执行一次

2.crontab命令的执行权力设定

与at命令中的黑白名单相似,白名单优先级高于黑名单,所以类比at命令便可以了解crontab命令,

  vim /etc/cron.deny  

(直接在文件中写用户名) ##用户黑名单,此名单中的用户不能执行crontab命令

     vim  /etc/cron.allow   

用户白名单,此名单默认不存在,建立后所有用户均没有at命令执行权限,此名单中的用户才有crontab命令执行权限

三:系统中的临时文件

**系统中服务在正常运行时会产生临时文件
在系统中 /usr/lib/tmpfiles.d/ 目录下存放
系统的临时文件配置是 /usr/lib/tmpfiles.d/.conf*
所以在实验前cd /usr/lib/tmpfiles.d然后在切换后的环境下vim xxxx.conf编辑文件中的内容:
这里写图片描述
图中d表示文件类型 /mnt/westos表示要执行的文件,777表示对文件授予权限为满权限。两个root表示,以root用户root组的身份去执行,10s表示时间。。。总体意思是,在10s之后才可以删除westos目录下的文件。
自己创建的临时文件配置文件必须以.conf结尾**
临时文件配置的编写方式是:
systemd-tmpfiles –create /usr/lib/tmpfiles.d/*
##执行临时文件配置
systemd-tmpfiles –clean /usr/lib/tmpfiles.d/*
##清理临时文件
这里写图片描述
**先是在/usr/lib/tmpfiles.d的环境下vim sazhuo.conf
然后在里面编辑时间内容
再切换到mnt环境下执行 systemd-tmpfiles –create /usr/lib/tmpfiles.d/* 表示临时文件的配置
ls查看有没有要执行的目录
ll查看文件权限开头的d表示配置成功
切换到westos环境touch 一个hsesfabc随便什么都行
ll查看是否touch成功
然后再执行清理临时文件的命令 systemd-tmpfiles –clean /usr/lib/tmpfiles.d/*
然后ls 查看touch的文件是否清理成功,需要十秒之后才能清理成功。**

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux,我们可以使用cron和at命令来创建定时任务延时任务。cron是一个在后台运行的守护进程,它可以根据预定的时间表执行命令或脚本。而at则是一种命令行工具,可以在指定的时间执行一次性任务。 1. 定时任务Linux系统定时任务可以使用cron命令进行配置。cron命令允许用户在指定的时间间隔内从命令行或脚本运行命令。 在cron,时间间隔由5个字段来定义: ``` * * * * * command to be executed - - - - - | | | | | | | | | +----- day of the week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of the month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59) ``` 例如,要在每周一的早上5点运行一个脚本,可以使用以下命令: ``` 0 5 * * 1 /path/to/script.sh ``` 这将在每天的5:00 AM执行/path/to/script.sh脚本,只有当日期为周一时才会执行。 2. 延时任务 在Linux系统,我们可以使用at命令来创建延时任务。at命令允许用户在指定的时间运行一次性任务。 使用at命令创建一个延时任务的基本语法格式如下: ``` at TIME <<EOF command1 command2 ... EOF ``` 其TIME可以是绝对时间或相对时间,也可以使用日期和时间的组合。例如,以下命令将在10分钟后运行命令: ``` at now + 10 minutes <<EOF /path/to/command EOF ``` 此外,也可以使用at命令来指定一个具体的时间运行命令: ``` at 2:00am tomorrow <<EOF /path/to/command EOF ``` 这将在明天的凌晨2点运行命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值