定时任务,延时任务
1.系统延时任务##
[root@localhost ~]# at 23:37 ##设定任务执行时间
at> rm -fr /mnt/* ##任务动作
at> <EOT> << CTRL +D ##用ctrl+D发起任务,命令输入完成后,回车,后直接 ctrl+d 来发起任务
执行后
[root@localhost ~]# at now+1min ##延时1分钟
at> rm -fr /mnt/*
at> <EOT>
at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
当取消了任务4后,时间已经到了,但并没有执行,因为已经取消了任务执行
注意:上图第一行命令没有加时间单位,所以不能执行,大家要注意单位
注意:
当任务有输出时,输出会以邮件的型是发送给at任务的发起者
mail -u root ##查看超级用户邮件
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
查看第一封
2.at任务的黑白名单###
/etc/at.deny ##系统中默认存在,在此文件中出现的用户不能执行at
在黑名单中添加后,此用户便不能执行at命令,不在名单中的用户可执行
切换到westos用户尝试
/etc/at.allow ##系统中默认不存在,当文件出现,普通用户不能执行at
##只有在名单中的用户可以,并且/etc/at.deny失效
出现在白名单的student用户可以执行
不在白名单的用户不能执行
注意:如果黑白名单同时出现,只读取白名单,黑名单失效,即如果黑白名单同时出现一个用户,那么,这个用户可是执行定时任务
###########3.系统定时任务###
1.crontab 时间表示方式
* * * * * ##每分钟
*/2 * * * * ##每两分钟
*/2 09-17 * * * ##早7-晚5每两分钟
*/2 */2 * * * ##每隔2小时每两分钟
*/2 09-17 3 5 5 #在5月3号和五月地周5的9点,17点每隔两分钟
*/2 09-17 * * 5 ##每周周五早9晚5
注意:星期几属于月份,若指定了月份,即为这个月的周几
2.系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
3.crontab
crontab -e -u username -e表示编辑
crontab -l -u username 查看任务
crontab -r -u username 删除任务
创建定时任务后,会在/var/spool/cron/下创建一个,以用户名命名的文件,定时任务就写在这个文件里
4.文件方式设定定时任务
vim /etc/cron.d/file
* * * * * username action
* * * * * root rm -fr /mnt/*
##如果操作较多可指定一个目录
* * * * * root run-parts /westos 此处/westos为自行指定用户
cd /westos 在westos下
建立要进行操作的脚本,
例:
vim test.sh
#!/bin/bash
* * * * * root rm -fr /mnt/*
chmod +x test.sh ##要加执行权限,否则不能运行
5.crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,普通用户不能执行crontab
##只有在名单中的用户可以,并且/etc/at.deny失效
##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
Student用户被禁止所以不能使用,没出现在黑名单的用户可以使用
##在被禁止的用户下不能进行 crontab -e 操作,但在root下进行 crontab -e -u username(被禁止的用户名) 操作,可以执行,因为这是root指定student去完成的操作
#4.系统中临时文件的管理方式####
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/*
编辑临时文件管理配置,生命期为10s
在生命期内,文件无法被删除