延时任务at、定时任务cron、临时文件管理

来源:互联网 发布:淘宝客服可以在家做吗 编辑:程序博客网 时间:2024/06/10 04:43

延时任务at

1.at命令
使用方法:

at   now+5min|时间>命令>Ctrl + d

示例:

at 14:20at> dateat> <EOT>job 2 at Sun Oct 29 14:20:00 2017

这里写图片描述

at now+5minat> dateat> <EOT>job 3 at Sun Oct 29 14:27:00 2017

这里写图片描述

at     -l     |   atq                ##查看未执行的延时任务atrm   ip     |   at     -d          ##终止延时任务

这里写图片描述

at    -M          ##延时任务有输出不产生邮件,退出邮件使用q

这里写图片描述

at    -c    ip     ##查看延迟任务的内容

这里写图片描述

这里写图片描述

at   -m       ##延时任务无输出产生邮件mail          ##查看邮件的内容,邮件在/var/spool/mail/kiosk中

这里写图片描述

at    -f   filename    ##将文件内容中的命令作为延时任务的动作

这里写图片描述
2.黑名单
/etc/at.deny ##at命令黑名单配置文件

vim  /etc/at.denykioskat 18:00      ##kisok被加入黑名单,使用at的权限被禁止You do not have permission to use at.

这里写图片描述

3.白名单
touch /etc/at.allow ##建立at命令白名单配置文件,白名单出现,黑名单失效.所有用户均不能使用at
这里写图片描述
vim /etc/at.allow ##编辑白名单,添加westos用户,只有westos用户和root用户能执行at命令

定时任务cron

cron由crond.service提供
写入程序的时间和事件是永久保存的

1.设定方式
(1)命令方式
crontab -u -e ##参数可不写

分钟   小时   天       月   周   事件58    06     *       *   *   rm -rf /mnt/*     ##每天的06:58执行rm -rf /mnt/*58    06   1,15      *   *   rm -rf /mnt/*     ##每月1日和15日的06:58执行rm -rf /mnt/*58    06   1-15      *   *   rm -rf /mnt/*     ##每月1日至15日的06:58执行rm -rf /mnt/*58    06   1,15      3   *   rm -rf /mnt/*     ##3月1日、15日的06:58执行rm -rf /mnt/*58    06   1,15      3   3   rm -rf /mnt/*     ##3月1日、15日的06:58和3月的每个周三的06:58执行rm -rf /mnt/*\*/2 06-17  *       *   1-5  rm -rf /mnt/*     ##周一到周五的每天早上6点至下午的5点之间每隔2分钟执行rm -fr /mnt/*事件

注意:多个事件的执行并不是按照事件排列的先后顺序执行,事件的执行是根据命令的执行效率决定的,比如rm -rf优先于touch。

(2)文件方式定义crontab
vim /var/spool/cron/用户名 ##以某用户身份执行cron,文件名称必须和用户名称一致

分  时   日   月   周      动作

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

分   时   日   月   周    用户   动作

这里写图片描述

注意:
当用户root使用文件方式定义crontab时,执行动作的用户是以root用户的身份执行的。即使该用户被加入黑名单,依旧可以执行动作。
这里写图片描述

2.编辑事件

crontab   -e          #编辑事件          -l          ##列出事件          -r          ##删除事件          -r  -i      ##删除任务时会询问是否删除,输入y则删除          -r  -u  student    ##以student用户执行事件

这里写图片描述

这里写图片描述
/var/spool/cron/* ##cronrenwu存储位置

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

(1)黑名单
/etc/cron.deny

vim /etc/cron.denywestoscrontab -eYou (westos) are not allowed to use this program(crontab)See crontab(1) for more information

这里写图片描述

(2)白名单
touch /etc/cron.allow ##建立at命令白名单配置文件,白名单出现,黑名单失效.所有用户均不能使用cron。
这里写图片描述

vim /etc/cron.allow ##白名单中添加westos用户,只有root和westos用户可以使用cron。
westos
这里写图片描述

(3)文件方式定义crontab
vim /var/spool/cron/用户名 ##以某用户身份执行cron,文件名称必须和用户名称一致

分  时   日   月   周      动作

这里写图片描述

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

分   时   日   月   周    用户   动作

这里写图片描述

临时文件管理

vim /usr/lib/tmpfiles.d/westos.conf ##编写管理临时文件的配置文件,westos.conf为用户自定义的

  d      /mnt/westos     777       root     root    10s                  |          |            |          |        |      | 目录 存放临时文件的目录 目录的权限 目录所属用户 所属组 清理目录内文件的间隔时间

这里写图片描述

这里写图片描述
systemd-tmpfiles –create /usr/lib/tmpfiles.d/* ##执行管理临时文件配置文件
systemd-tmpfiles –clean /usr/lib/tmpfiles.d/* ##清理超过配置文件设定时间的文件

这里写图片描述
重新打开一个窗口,进行监控: watch -n 1 ls -lR /mnt/
在原窗口touch /mnt/file1,10s之后执行systemd-tmpfiles –clean /usr/lib/tmpfiles.d/*,会发现/mnt/file1不见了。
这里写图片描述

练习:定时人物cron与临时文件管理结合使用

vim  /usr/lib/tmpfiles.d/westos.conf              ##编写配置文件的内容d   /westos/   777  root  root    30ssystemd-tmpfiles --create /usr/lib/tmpfiles.d/*   ##执行配置文件的内容,当目录/westos/不存在时会建立/westos/touch /westos/file{1..5}     ##向存放临时文件的目录内新建文件vim /etc/cron.d/westos       ##文件方式编写定向任务*  *  *  *  * root systemd-tmpfiles --clean  /usr/lib/tmpfiles.d/*                    ##每分钟清理一次临时文件ls -l /westos/               ##查看临时文件是否被清理

这里写图片描述