一、系统延时任务
[root@localhost~]# at 15:05 ##设定任务执行时间
at> rm -rf /mnt/* ##具体任务
at> <EOT> <<ctrl+d ##发起执行ctrl+d
[root@localhost~]# at now+1min ##设定执行时间为一分钟后
at> rm -rf /mnt/*
at> <EOT>
at -l ##查看列表列表
at -c 任务编号 ##查看某个任务的具体内容及相关属性
at -r 任务编号 ##取消某个延时任务
示例:
首先在/mnt/文件下创建十个空文件,用watch监控。
分析:at -l 可以查看有具体的延时任务列表。
分析:at -c 任务号 可以具体的查看某个延时任务的详细内容,及相关信息。
分析:at -r 任务号 可以取消某个延时任务
注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发起者。
示例:
mial -u root ##查看某个用户的邮件
二、at任务的黑白名单。
at命令默认系统中的所有用户都可以执行,我们知道这是非常危险的一件事。
/etc/at.deny ##黑名单,出现在黑名单的用户将不能执行at命令。
/etc/at.allow ##白名单,系统默认不存在,如果建立,不在文件中的用户不能执行at命令,黑名单失效。
示例:
黑名单:
白名单:
分析:黑白名单都有student用户,但是student用户仍可以执行at命令,redhat用户白名单没有,不能执行。
三、系统定时任务
1.crontab 时间表示方式
分 时 日 月 周
* * * * * command ##每分钟执行一次任务
*/2 * * * * command ##每两分钟执行一次任务
*/2 09-17 * * * command ##在早9-晚5每两分钟执行一次任务
*/2 */2 * * * command ##每隔两小时的每两分钟执行一次任务
*/2 09-17 3,5 1 5 command ##在一月的三号和五号以及一月的每周五早9-晚5每两分钟执行一次任务
2、系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
systemctl status crond.service ##查看程序状态
3、crondtab
crontab -e -u ##编辑,指定用户
crontab -l -u ##列表,指定用户
crontab -r -u ##取消定时任务,指定用户
示例1:
crontab -e -u ##编辑,指定用户
首先用命令动态监控/mnt/文件夹
watch -n 1 ls -l /mnt/*
设置定时任务:
内容
效果:
示例2:
crontab -l -u ##列表,指定用户
示例3:
crontab -r -u ##取消定时任务,指定用户
4、文件临时设置定时任务
在/etc/cron.d/文件下建立文件
vim /etc/cron.d/filel
cat /etc/cron.d/file
* * * * * root rm -fr /mnt/* ##* * * * * username action
示例:
效果:
5、crontab的黑白名单
/etc/cron.deny ##黑名单,系统中默认存在,文件中的用户不能执行crontab命令
/etc/cron.allow ##白名单,默认不存在,文件出现,不在这个文件中的普通用户不能执行crontab命令,出现则黑名单失效。
示例1:黑名单
示例2:白名单
注意: 这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
四、系统中临时文件的管理方式
系统的很多服务在运行时,会产生很多的临时文件,而对这些临时文件的清理的功能的配置文件在/usr/lib/tmpfiles.d/目录中。
如:系统临时文件夹/tmp/
vim /usr/lib/tmpfiles.d/tmp.conf
分析:/tmp目录,当临时文件的滞留时间大于10天时会被清理。
示例:我们建立/mnt/tmp目录,滞留时间大于8s文件会被清理。
cd /usr/lib/tmpfiles.d/ ##切换到指定目录
vim file.conf
d /mnt/tmp 1777 root root 8s ##写入file.conf文件的内容
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##创建临时文件存目录
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清除滞留时间过长的临时文件
分析:在/mnt/tmp目录下有两个文件file和file2,其中file文件的滞留时间大于8s,而file2文件的的滞留时间小于8s,执行systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*。清除临时文件后,file文件被删除,保留file2文件。