基于linux系统下的系统定时任务与延时任务
1.系统延时任务
at命令
at 命令可以指定某一任务在将来的的特定时间运行。该作业可能是一次备份,对您系统的一次检查或者特定时间发送的通知。那些需要花费很长时间才可完成的作业正适合 at 命令。仅需使用at命令将任务设置为在一分钟或者两分钟之后运行,然后您就可以安全注销,因为该任务会在与shell会话断开连接的情况下运行
at命令必须指定任务应运行的时间,该指定可以是机具体的时间或日期(例如星期一,10:00pm 或者7月1日),也可以是当前时间的相对时间(现在时间加上5分钟,现在时间加上一天,一周),通过添加其他选项,您可以在任务完成时发送邮件(-m),或者从文件中读取任务(-f文件),而无需通过标准输入进行
at time ##设定任务执行时间
at> 命令 ##任务动作
at> <EOT> <<CTRL+D ##用ctrl+D发起任务
at now+1min ##延时1分钟
at> 命令
at> <EOT>
at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u user ##查看用户的邮件
数字 ##查看第几封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
2.at任务的黑白名单
/etc/at.deny ##系统中默认存在,在此文件中出现的用户不能执行at命令
/etc/at.allow ##系统中默认不存在,当此文件出现,普通用户不能执行at命令
##只有在名单中的用户可以使用at命令,/etc/at.deny失效
黑名单:
白名单:
3.系统定时任务
1.crontab 时间表示方式
分-时-日-月-周
* * * * * ##每分钟
*/2 * * * * ##每两分钟
*/2 09-17 * * * ##早7-晚5每两分钟
*/2 */2 * * * ##每隔两小时每两分钟
*/2 09-17 3,5 1 5 ##1月3日与1月5日周五早9-晚5每两分钟
*/2 09-17 * * 5 ##每周五早9晚5每两分钟
2.系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
3.crontab
crontab -e -u ##编辑指定用户的任务
crontab -l -u ##查看指定用户的任务
crontab -r -u ##删除指定用户的任务
4.文件方式设定定时任务(系统级crontab文件,只有root用户可以用)
vim /etc/cron.d/file
* * * * * username action
* * * * * root rm -fr /mnt/*
5.crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在的,当文件出现,普通用户不能执行crontab,只有名单中的用户才可以,并且/etc/cron.deny失效
##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起即执行
黑名单:
白名单:
4.系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d/
vim pp.conf
d /mnt/westos 1777 root root 10s ##将文件内容定时删除
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##创建一个临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清除一个临时文件