在生活中,我们的手机闹钟就是一个定时任务,闹钟响了,你还想睡一会儿,让它5分钟以后再响,就相当于延时任务,在linux系统中也存在这种功能,让我们更加合理的安排时间和管理任务。下面简单介绍一下linux系统中的延时任务,定时任务,以及临时文件的清理:
1.延时任务:
at + 时间 然后输入命令动作 crtl + d 退出 就会建立一个延时任务
在08:49准时将文件ok创建出来:
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中的命令
输入命令;
在09:06准时将目录创建出来
能否执行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建立一个文件:
文件PL准时出现:
第二种为针对多个用户:
需要编辑文件:vim /etc/cron.d/文件名自定义
格式为:
分钟 小时 天 月 周 用户 动作
* * * * * root touch /mnt/ok :意为超级用户每分钟清理一次PL目录里的内容
* * * * * student touch /mnt/file :意为普通用户每5分钟在/PL里创建一个文件
在文件/etc/cron.d/ok中编辑:
然后再打开一个shell监控/mnt目录,可看见文件的建立;
部分时间表示:
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
然后运行命令:systemd-tmpfiles --create /use/lib/tmpfiles.d/H.conf 这里的H为我自定义取名
可以看到在/mnt下目录ok已经建立:
然后创建文件touch /mnt/ok/file ,将file当作一个临时文件
等待20s后输入;systemd-tmpfiles --clean /use/lib/tmpfiles.d/H.conf 可将/mnt/ok/下的文件清除,在这里要注意的是
之前我们在文件存在时间的位置设置的是20s,意为文件创建20s之后才能被清理,刚创建的文件用此命令
是删除不了的。