延时任务at
1.at命令用法:
at now+5min|时间
>命令
>Ctrl+d
at 03:19
> reboot
> ctrl+d
定时重启
at -l | atq #查看未执行的延时任务
atrm ip | at -d ip #终止延时任务
at -M
##延时任务有输出不产生邮件,退出邮件使用q
at -c ip
##查看延时任务的内容
at -m
##延时任务无输出产生邮件
mail
##查看邮件内容,在/var/spool/mail/root/
at -f filename
##将文件内容中的命令作为延时任务的动作
2.黑名单
/etc/at.deny
at命令黑名单配置文件
vim /etc/at.deny
student
将student用户写入黑名单,student不可以使用at命令
3.白名单
touch /etc/at.allow
建立at命令的白名单配置文件
白名单出现,黑名单失效,白名单以外的用户都不能使用at(root可以)
vim /etc/at.allow
student
白名单中写入student用户,其他用户不可以使用at 延时任务,root可以
定时任务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/*事件
发起方式1
crontab
-e ##编辑定期任务
-l ##显示定期任务
-r ##删除定期任务
crontab格式
分钟 小时 天 月 周
分钟/数字 ##每隔几分钟,以此类推,小时,天,月,周都适用
(2)文件方式定义crontab
以某用户身份执行cron,文件名称必须和用户名称一致
vim /var/spool/cron/用户名
分 时 日 月 周 动作
设定多个用户身份执行cron
vim /etc/cron.d/文件
分 时 日 月 周 用户 动作
编辑事件
crontab -e #编辑事件
-l ##列出事件
-r ##删除事件
-r -i ##删除任务时会询问是否删除,输入y则删除
-r -u student ##以student用户执行事件
4.crontab使用限制
黑名单
/etc/cron.deny ##默认存在系统中,在此列表中出现的用户被禁止
test ##禁止test执行crontab
白名单
touch /etc/cron.allow ##默认在系统中不存在,
##但是当此文件存在时,
###deny文件失效,
#并且所有普通用户能执行crontab的权力被禁止,只有在此文件中的用户可以执行crontab
student ##系统中的普通用户只有student可以使用crontab
5.系统临时文件
vim /usr/lib/tmpfiles.d/xxx.conf
编写管理临时文件的配置文件
类型 名称 权限 所有人 所有组 存在时间(s m d)
d /mnt/haha 777 root root 10s
| | | | | |
目录 存放临时文件的目录 目录的权限 目录所属用户 所属组 清理目录内文件的间隔时间
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xxx.conf ##执行管理临时文件配置文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxx.conf ##清理超过配置文件设定时间的文
重新打开一个窗口,进行监控: watch -n 1 ls -lR /mnt/
在原窗口touch /mnt/test,10s之后执行systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*,会发现/mnt/test不见了。