Linux系统基本管理之系统定时任务管理
一.pxe+kickstart自动化安装系统
1.问题描述:企业中通常需要在多台虚拟机上安装系统,怎么实现一键化操作启动,来达到多份安装资源共享的问题?
2.针对上述问题引入pxe,原理图如下:
远程主机在通过dhcp获取IP地址时,也能获取到pxe文件。
3.pxelinux的环境搭建
(1)安装相关软件(注意需提前安装好dhcp服务)
dnf install syslinux-tftpboot-6.04-1.el8.noarch -y
dnf install tftp-server -y
安装好之后开启 tftp服务
(2) 配置pxelinux 文件
(3)在dhcp主配置文件中指定pxe文件
vim /etc/dhcp/dhcpd.conf
(4)完成以上步骤后 pxe的环境也就搭建完成。重新建立一台虚拟机,开启新的虚拟机之后 开启系统会见到下面效果
4.pxe配置文件设定和kickstart脚本制作
(1)编辑vim pxelinux.cfg/default 设置安装系统的读秒时间
(2)挂载镜像资源,让资源能网络共享
(3)指定共享资源安装位置
vim pxelinux.cfg/default
(4)制作脚本(制作步骤前面内容已提到)
vim /var/www/html/westos.cfg
(5)重启dhcp和tftp服务,实现一键安装系统
完成以上步骤,即可实现pxe+kickstart 企业一键化自动安装系统。
二.系统中设定延时任务
1.at延时任务的设定
at 时间 表示多少时间之后执行啥任务
at -l 查看任务队列
at -r 任务号 取消任务执行
at -c 任务号 表示查看任务的具体内容
at now+分钟数 表示任务几分钟后结束
at 任务的执行 按Ctrl+D
操作如下:
2.系统延迟任务中产生的输出会以邮件的形式发送给at命名的发起者
(1)安装邮件发送软件
dnf install postfix -y
mail -u root 查看超级用户邮件
mail root 发送邮件 以点表示发送
> 1 查看第一封邮件
> q 退出查看
> /var/spool/mail/root 清空系统邮件
(2)查看at延迟任务输出管理的形式
执行一个at 命令即可查看到一封邮件在已发送至root用户
3.at任务的黑白名单
(1)黑名单的控制
vim /etc/at.deny 该文件是系统中默认存在的,出现在该文件中用户名单不可执行at命令
vim /etc/at.allow 该文件是系统中默认不存在的,出现在该文件中用户名单可执行at命令 其他用户不可执行
三.系统定时任务的设定
(1)crontab时间表示方式
* * * * * 命令
minute hour day month week command
# minute: 表示分钟,可以是从0到59之间的任何整数。
# hour:表示小时,可以是从0到23之间的任何整数。
# day:表示日期,可以是从1到31之间的任何整数。
# month:表示月份,可以是从1到12之间的任何整数。
# week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
# command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
使用实例
# 每1分钟执行一次command
* * * * * command
# 每小时的第3和第15分钟执行
3,15 * * * * command
# 在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
# 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
# 每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
# 每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
# 每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
# 每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
# 每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
# 每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
# 每一小时重启smb
* */1 * * * /etc/init.d/smb restart
# 晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
# 每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
# 一月一号的4点重启smb
0 4 1 jan * /etc/init.d/smb restart
# 每小时执行/etc/cron.hourly目录内的脚本
01 * * * * root run-parts /etc/cron.hourly
(2)系统控制crontab的服务 crond.service
(3)crontab 命令的用途
crontab -e -u 用户 表示编辑定时任务
crontab -l -u 用户 表示查看定时任务
crontab -r -u 用户 删除定时任务
(4)文件方式设置定时任务
vim /etc/cron.d/文件名
* * * * * username action
* * * * * root rm -fr /mnt/*
(5)crontab的黑白名单
vim /etc/cron.deny 系统中默认存在,在此文件中出现的用户不能执行crontab
vim /etc/cron.allow 系统中默认不存在,当文件出现,普通用户不能执行crontab
以上两个名单中的内容都不会影响/etc/cron.d/目录中定时任务的发起与执行
四.系统中临时文件的管理方式
cd /usr/lib/temfiles.d/ 系统中临时文件存在的目录
vim westos.conf
d /mnt/westos 777 root root 8s 临时文件时一个目录,在8秒之后文件会被清理
systemd-tmpfiles --creat /usr/lib/tmpfiles.d/* 创建临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* 清理临时文件
实验如下:
指定临时文件目录
设定临时文件的定时任务
创建临时文件和清理临时任务
watch -n 1 ls -lR /mnt 监控实验效果
测试题:
(1)用一条非交互命令设定lee用户在每天15点清理/mnt目录
(2)设定系统定时任务,每周5早上8点清理系统临时文件.