linux中的延时定时任务管理

时间:2022-02-16 07:46:09

在生活中,我们的手机闹钟就是一个定时任务,闹钟响了,你还想睡一会儿,让它5分钟以后再响,就相当于延时任务,在linux系统中也存在这种功能,让我们更加合理的安排时间和管理任务。下面简单介绍一下linux系统中的延时任务,定时任务,以及临时文件的清理:


1.延时任务:

at + 时间   然后输入命令动作  crtl + d 退出 就会建立一个延时任务

在08:49准时将文件ok创建出来:

linux中的延时定时任务管理

at其他相关命令:

at -l = atq :都为查看当前任务

atrm =at -d + 指定序号 :为取消指定任务

at -c + 指定序号 :可查看任务内容

at now+1min :指定延迟一分钟

at -m :延迟命令没有输出时仍然发送邮件给执行者

at -M :延迟命令有输出但不会发送命令给执行者

at -f file :file表示含有命令任务的文件,-f表示延迟执行文件中的内容

at now+1min -f ok

先编辑文件ok中的命令

linux中的延时定时任务管理

输入命令;

linux中的延时定时任务管理

在09:06准时将目录创建出来

linux中的延时定时任务管理

能否执行at命令的黑白名单:

/etc/at.deny :at命名用户黑名单,加入在这个文件中的用户,不能使用at命令

/etc/at.allow:at命令用户白名单,白名单优先级高于黑名单,默认系统中不含有此文件,如果创建出这个文件,

就会立即生效,里面没有用户名单时,所有用户不能使用at命令


2.定时任务

定时任务程序为crond,在系统中每分钟作任务扫描

第一种执行方式:针对单个用户

crontab -u 用户 -e   :建立定时任务

crontab -u 用户 -r    :删除定时任务

crontab -u 用户 -l     :查看定时任务

输入 crontab -u root -e 进入编剧命令:意为在09:47建立一个文件:

linux中的延时定时任务管理

文件PL准时出现

linux中的延时定时任务管理

第二种为针对多个用户:

需要编辑文件:vim /etc/cron.d/文件名自定义

格式为:

分钟   小时   天   月   周      用户    动作

* * * * *    root  touch   /mnt/ok  :意为超级用户每分钟清理一次PL目录里的内容

* * * * *  student  touch /mnt/file :意为普通用户每5分钟在/PL里创建一个文件

在文件/etc/cron.d/ok中编辑:

linux中的延时定时任务管理

然后再打开一个shell监控/mnt目录,可看见文件的建立;

linux中的延时定时任务管理

部分时间表示:

05 * * * * :表示每小时整点过5分钟

05 02 * * * :表示每天2:05am

30 08 01 * * :表示每月第一天08:30pm

crond命令也和qt命令一样可以设定用户的执行权力:

/etc/crond.deny:为定时任务黑名单,文件中写入的用户,不能执行crond命令

/etc/crond.allow:为定时任务白名单,名单默认不存在,一旦出现,黑名单就失效,系统用户默认不能

执行crond命令,只有在文件中出现的用户可以执命令,和上面的qt命令使用限定是一样的


3.系统中的临时文件

系统中的服务在运行时会产生临时文件,编辑文件/usr/lib/tmpfiles.d/*.conf   “*"表示文件名自定义,但一定要

加上.conf

格式为:  文件类型      文件名称      文件权限      文件所有人     文件所有组     文件存在时间

       例:       d              /mnt/ok          777                 root               root                   20s

linux中的延时定时任务管理

然后运行命令:systemd-tmpfiles --create /use/lib/tmpfiles.d/H.conf   这里的H为我自定义取名

可以看到在/mnt下目录ok已经建立:

linux中的延时定时任务管理

然后创建文件touch /mnt/ok/file ,将file当作一个临时文件

linux中的延时定时任务管理

 等待20s后输入;systemd-tmpfiles --clean /use/lib/tmpfiles.d/H.conf 可将/mnt/ok/下的文件清除,在这里要注意的是

之前我们在文件存在时间的位置设置的是20s,意为文件创建20s之后才能被清理,刚创建的文件用此命令

是删除不了的。