系统延时任务及定时任务
一.系统延时任务
1.at 延迟任务是临时的
延迟任务执行后,结果不会在shell上面显示,会以邮件的形式发送给执行人
2.查看邮件 mail
邮件所在文件 /var/spool/mail/root
3.设置延迟任务
[root@localhost~]# at 23:37 ##设定任务执行时间
at> rm -fr /mnt/* ##任务动作(删除)
at> <EOF> << ctrl +D ##用ctrl+d发起任务
[root@localhost~]# at now+1min ##延时1分钟后执行任务
at> <EOT>
注意:任务延迟时间为整min
at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
注意:
当有任务输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root ##查看超级用户邮件
mail -u kiosk ##查看普通用户邮件
l ##查看第一份邮件
q ##退出
> /var/spool/mail/root ##清空邮件
4.任务的黑白名单
注意:黑名单不针对超级用户
/etc/at.deny ##系统中默认存在,此文件中出现的用户不能执行at
例如:将westos加入到黑名单中,便不能执行at命令
注意:白名单不针对超级用户
/etc/at.allow ##系统中默认不存在,需要手动建立当文件出现,普通用户不能执行at
##只有在名单中的用户可以进行at命令,白名单出现/etc/at.deny失效
将刚刚加入黑名单的westos加入到白名单中,westos就可以进行at命令了
二.系统定时任务
1.crontab时间表示方式
* * * * * 命令指示(例:删除rm -fr /mnt/*0) ##每分钟发出一次删除命令
*/2 * * * * ##每两分钟
*/2 09-17 * * * ##早7——晚5每两分钟
*/2 */2 * * * ##每隔2小时每两分钟
*/2 09-17 3,5 1 5 ##3月和5月每周周五及3月1日和5月1日
*/2 09-17 * * 5 ##每周周五早9晚五
2.系统控制crontab的服务
crond.service ##开机自启动会排查未执行的crontab,立即执行
3.crontab 永久生效
man 5 crontab 可查看crontab的用法
crontab -u username -e 直接编辑定时任务
crontab -u username -l 查看设置的定时任务
crontab -u username -r 删除设置的定时任务
4.文件方式设定定时任务
vim /etc/cron.d/file ## file文件必须在/etc/cron.d目录下
* * * * * username action ## 指定任务、用户以及动作
eg:指定超级用户每分钟删除/mnt目录下的所有文件。
* * * * * root rm -rf /mnt/*
首先监控/mnt/下新建的文件,以便查看命令执行结果
编辑此文件/etc/cron.d/file
查看内容
注意:系统级的定时任务不会在用户级的文件中显示
所以只能cat /etc/crond/file 才能看到设定的内容
非交互式定时任务设定
5.crontab的黑白名单
/etc/cron.deny ## 系统中文件默认存在,此文件中出现的用户不能执行crontab
编辑此文件输入studnet用户,我们可以看到student用户无法进行定时任务的设定
/etc/cron.allow ## 系统中默认不存在,存在这个文件时,只有白名单中的用户和root用户可以使用crontab命令,其他用户不可以使用普通用户将不能执行crontab。
再在白名单中输入student用户,黑名单内容失效,student用户即可进行定时任务的设定
进入westos用户还是不可以进行此操作,因为白名单中只有student用户。
注意:这两个名单都不会影响/etc/cron.d/目录中定时任务的发起与执行。
下面来证实一下,在/etc/cron.d/中建立一个文件发起任务
即用student用户在/home/student下建立文件
一分钟后可以看到/home/student/下文件建立成功
四、系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d/ ## 切换环境
vim westos.conf
输入:d /mnt/westos 777 root root 8s ## 配置文件的作用域
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ## 创建
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ## 清理临时文件
首先切换环境
编辑文件westos.conf输入内容
在/mnt/westos下建立文件,8秒就会清理一次