定时任务与延迟任务
一.延迟任务:
1.延迟任务:是临时的,不重复的。
当延迟任务有输出,输出会以邮件的形式发送给任务发起人。
邮件用mail查看
at 时间
任务
ctrl + d
at -l **查看当前任务
at -c 1(任务编号) **查看任务内容
at now+1min **延迟一分钟
at -f file **延迟执行文件内容
atrm 1(任务编号) **取消任务
例如:[root@localhost ~]# at now+5min
at> date **1分钟后的时间会以邮件形式发送给任务发起人
at> <EOT>
例如:at -l 查看当前任务
例如:at -c 1 查看任务内容
例如:atrm 7 取消编号位7 任务
[root@localhost ~]# mail **查看邮件
、查看结果:
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 root Thu Apr 12 21:25 14/524 "Output from your job "
& Output from your job
Unknown command: "Output"
&
Message 1:
From root@localhost.localdomain Thu Apr 12 21:25:08 2018
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Subject: Output from your job 2
To: root@localhost.localdomain
Date: Thu, 12 Apr 2018 21:25:07 -0400 (EDT)
From: root@localhost.localdomain (root)
Status: R
Thu Apr 12 21:25:07 EDT 2018 **邮件内容显示的时间
& **按q退出
2.设定黑白名单
黑名单:vim /etc/at.deny **设置了黑名单,名单上的用户不能执行at命令
白名单:touch /etc/at.allow **当/etc/at.allow文件建立出来,所有人都不能执行at命令,当删除/etc/at.allow文件白名单取消。当把某个用户加入at.allow白名单后可以执行at命令。
注意:root用户不受限制。
二.定期任务
1.命令设定
man 5 crontab **查看crontab说明
systemctl status crond.service **查看crontab状态
systemctl status crond.service **关闭crontab
crontab -e **设定定时任务
crontab -e -u student **设定student用户的定时任务
crontab -l **查看定时任务
crontab -r -u student **删除studnet用户定时任务
crontab -u student -l **查看student用户的定时任务
例如:systemctl status crond.service **查看crontab状态
例如:crontab -e
例如:crontab -l
例如:crontab -e -u student
例如:crontab -u student -l 查看student用户的定时任务
2.编辑配置文件设定:
vim /var/spool/cron/root **设定root用户的crontab
vim /var/spool/cron/student **设定student用户的crontab
3.设定黑白名单
黑名单:vim /etc/cron.deny **设置了黑名单,名单上的用户不能执行at命令
白名单:touch /etc/cron.allow **当/etc/cron.allow文件建立出来,所有人都不能执行at命令,当删除/etc/cron.allow文件白名单取消。当把某个用户加入cron.allow白名单时,该用户可以执行crontab命令。
注意:root用户不受限制。
4.系统级的crontab只能超级用户设定
交互式编辑:
[root@localhost ~]# /etc/cron. **Tab显示以下
cron.d/ cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/
自定义 每天执行 每小时执行 每月执行 每周执行
编辑文件自定义:vim /etc/cron.d/文件名称
内容如下:
* * * * * root rm -fr /mnt/* **用户名称必须写
非交互式编辑:echo "* * * * * student date" >> /etc/cron.d/student
**让student用户每分.时.日.月.天执行date的定时任务
例如:echo "* * * * * student date" >> /etc/cron.d/student
三.系统临时文件的清理