Linux学习笔记—系统定时和延迟任务

时间:2021-08-16 07:49:06

1.延迟任务

  1. at命令
    命令格式:
at[参数][时间]

命令功能:在一个指定的时间执行一个指定任务,其发起的延时任务都是一次性的。其中,快捷键‘Ctrl+D‘执行命令。
命令参数:

at -l         ##查看当前任务
at -r ##取消指定时间的任务
at -c ##查看任务内容
at now+1min ##延迟1分钟执行任务
at -f file ##延迟执行文件中的内容
at -m ##延迟命令没有输出时,仍然发送邮件给执行者
at -M ##延迟命令有输出时,不发送邮件给执行者

实例1:9:59执行删除 /mnt/ 下的所有文件
执行任务前:
Linux学习笔记—系统定时和延迟任务
执行任务后:
Linux学习笔记—系统定时和延迟任务
实例2:查看当前任务,当前任务号:1
Linux学习笔记—系统定时和延迟任务
实例3:清除任务号为4的任务
Linux学习笔记—系统定时和延迟任务
实例4:mail命令的使用

[root@server16 ~]# mail ##邮件方式将已执行的任务发送给root用户
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/root": 3 messages 3 new
>N 1 user@localhost.local Fri Jan 19 16:41 108/4834 "[abrt] initial-setup-"
N 2 user@localhost.examp Sat Jan 20 11:36 1397/67472 "[abrt] cheese: chees"
N 3 root Sun Jan 21 15:06 14/500 "Output from your job "
& q ##q表示退出,&后也可接任务号,显示该任务的详细信息
Held 3 messages in /var/spool/mail/root
You have mail in /var/spool/mail/root
[root@server16 ~]# > /var/spool/mail/root ##清空邮件
[root@server16 ~]# mail
No mail for root
  1. at命令执行权力设定
    配置文件:
/etc/at.deny        ##用户黑名单,在此名单中出现的用户不能执行at命令
/etc/at.allow ##用户白名单,名单默认不存在,但名单一旦出现,黑名单失效
##系统所有用户默认不能执行at,只有在名单中出现的用户可以使用at命令

实例1:使用用户黑名单,使普通用户student不能执行at命令
Linux学习笔记—系统定时和延迟任务
使用黑名单前,普通用户student可以正常使用at命令;将普通用户student加入黑名单后,其不能正确使用at命令。
实例2:创建用户白名单,使得student用户可以执行at命令
Linux学习笔记—系统定时和延迟任务

2.定时任务

通过crontab 命令,可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
1. crontab 命令的时间表示方式:
分钟 小时 天 月 周
* * * * * ##每分钟
/2 * * * ##每两分钟
* 08-17 * * * ## 每天早上8点-下午5点每分钟
* 08-17 1,15 * * ##每月1号和15号的早上8点-下午5点每分钟
* 08-17 1,15 3 * ##三月1号和15号的早上8点-下午5点每分钟
* 08-17 1,15 3 5 ##三月1号和15号以及每周五的早上8点-下午5点每分钟

  1. 命令格式
crontab -u username -e    ##编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
crontab -u username -r ##从/var/spool/cron目录中删除某个用户的crontab文件。如果不指定用户,则默认删除当前用户的crontab文件。
crontab -u username -l ##显示某个用户的crontab文件内容。如果不指定用户,则表示显示当前用户的crontab文件内容。
  1. 文件格式
    配置文件
vim /etc/cron.d/filename

文件格式:
分 时 日 月 星期 用户 命令

          • root rm -fr /mnt/* ##超级用户每分钟清理一次/mnt下的文件
            第1列分钟0~59
            第2列小时0~23(0表示子夜)
            第3列日1~31
            第4列月1~12
            第5列星期0~7(0和7表示星期天)
            第6列要运行的命令
            实例:普通用户student每分钟在/mnt下建立10个文本文件,超级用户每5分钟清除一次/mnt下的文件
            方法一:
[root@server16 cron.d]# vim westos
[root@server16 cron.d]# rm -fr /mnt/*
[root@server16 cron.d]# chmod 777 /mnt ##加权限,使得普通用户也可访问

配置文件 /etc/cron.d/westos
Linux学习笔记—系统定时和延迟任务
方法二:

[root@server16 cron.d]# chmod 777 /mnt    ##加权限,使得普通用户也可访问
[root@server16 cron.d]# > westos
[root@server16 cron.d]# echo "* * * * * root rm -fr /mnt/*"
* * * * * root rm -fr /mnt/*
[root@server16 cron.d]# echo "* * * * * root rm -fr /mnt/*" >/etc/cron.d/westos

3.系统临时文件的管理

系统中服务在正常运行时会产生临时文件

配置文件

/urs/lib/tmpfiles.d/*.conf                         ##系统中临时文件的配置
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清里临时文件

文件格式:
文件类型 文件名称 文件权限 文件所有人 文件所有组 文件存在时间
d /mnt/westos 777 root root 10s
实例:

[root@server16 ~]# watch -n 1 ' ls -lR /westos ' ##监控/westos文件内容及属性
[root@server16 ~]# cd /lib/tmpfiles.d/
[root@server16 tmpfiles.d]# vim westos.conf ##模仿/lib/tmpfiles.d/目录下的文件新建/lib/tmpfiles.d/westos.conf文件

配置文件 /lib/tmpfiles.d/ westos.conf
Linux学习笔记—系统定时和延迟任务

[root@server16 tmpfiles.d]# systemd-tmpfiles --create /lib/tmpfiles.d/* ##创建/westos目录
[root@server16 tmpfiles.d]# touch /westos/file
[root@server16 tmpfiles.d]# systemd-tmpfiles --clean /lib/tmpfiles.d/* ##清理/westos下的file文件

/westos目录尚未建立
Linux学习笔记—系统定时和延迟任务
创建/westos目录,在/westos目录下创建file文件,并清理/westos下的file文件
Linux学习笔记—系统定时和延迟任务