建设网站德州,东莞市品牌网站建设报价,网站左下角广告代码,策划书模板免费下载的网站RHCE 一、网络服务1、准备工作2、RHEL9操作系统的安装部署3、配置并优化RHEL9操作系统4、网络配置5、修改网络连接 二、例行性工作1、单一执行的例行性工作2、循环执行的例行性工作 三、书写定时任务的注意事项四、系统级别的计划任务五、实验1、实验一#xff1a;编写脚本tes… RHCE 一、网络服务1、准备工作2、RHEL9操作系统的安装部署3、配置并优化RHEL9操作系统4、网络配置5、修改网络连接 二、例行性工作1、单一执行的例行性工作2、循环执行的例行性工作 三、书写定时任务的注意事项四、系统级别的计划任务五、实验1、实验一编写脚本test.sh并执行2、实验二设置邮件报警及例行性发送功能3、实验三 一、网络服务
1、准备工作
首先可以参考RHCSA的第一篇文章系统的安装 红帽虚拟机安装 新手建议先看初级学习即上链接
1、文件菜单—新建虚拟机—典型—下一步 2、安装操作系统 3、选择操作系统类型如果找不到类型名可以以内核kernel版本号为准这里红帽RHEL9版本使用的是Linux5内核而之前的8.0版本自然使用的是Linux4.0内核。 4、命名虚拟机 5、设置磁盘空间默认为20G动态空间申请设置为单个文件。 这里单个文件创建和多个文件创建的区别 单文件便于写入多文件便于移动。
6、自定义硬件设置硬件参数 内存推荐2GB处理器1颗、2核心新CD/DVD适应ISO映像文件点击浏览按钮选择之前下载好的RHEL9.1.iso镜像文件网络适配器选择NAT模式显示器去掉加速3D图形“的对钩移除打印机等不用的设备点击完成
2、RHEL9操作系统的安装部署
1、使用鼠标点击黑色界面进入RHEL9.1系统通过ctrlalt可以释放鼠标焦点回到Windows2、通过键盘方向键选择第一项Install Red Hat Enterprise Linux9.1选项进行安装系统 3、选择语言 4、安装信息设置 安装目的地显示安装未知一般为硬盘并进行分区 1、/boot系统启动分区400MB 2、swap交换分区4GB 3、/根分区期望容量省略表示将剩余空i教案全部分配 方法点击下图的加号设置挂载点及期望容量重复多次点击完成点击接收更改 这里分区在以后进入企业之后在不知道具体业务的情况下可分此三个区。 禁用KDUMP内核崩溃转储保护机制学习情况下关闭生产环境中需要打开。root账户密码设置必须将四二对勾打上 创建用户创建一个普通账户设置密码 5、接下来完成点击安装RHEL系统
3、配置并优化RHEL9操作系统
登录点击“未列出”输入账户root和密码后登录 打开终端活动-终端 关闭锁屏活动-九个点按钮显示应用程序-设置-隐私-锁屏-息屏延时改为从不-关闭自动锁屏
1、系统设置中检查网络连接状态2、关闭自动锁屏功能 3、更新配置yum源
[rootserver ~]# cd /etc/yum.repos.d
[rootserver yum.repos.d]# mv redhat.repo redhat.repo.back # 此步骤可选
# 使用xftp上传Centos-9-Stream.repo 配置文件
# 提示系统未注册可执行以下2步将enabled1修改为0但也可以不该不影响使用
[rootserver yum.repos.d]# vim /etc/yum/pluginconf.d/product-id.conf
enabled0
[rootserver yum.repos.d]# vim /etc/yum/pluginconf.d/subscription-manager.conf
enabled0
[rootserver yum.repos.d]# yum makecache # 制作缓存4、修改主机名
[rootserver ~]# cd ~
[rootserver ~]# hostnamectl set-hostname server # server为主机名
[rootserver ~]# reboot # 重启5、关闭防火墙及SELinux
[rootserver ~]# vim /etc/selinux/config # 编辑SELinux配置文件修改为关闭
SELINUXdisabled[rootserver ~]# systemctl stop firewalld # 关闭防火墙
[rootserver ~]# systemctl disable firewalld #v取消开机启动5、ping测试并拍摄快照6、对SERVER主机进行克隆克隆出节点12即为NODE1以及NODE2重启生效并拍摄快照。
4、网络配置
方式一可视化配置nmtui 格式
[rootserver ~]# nmtui增加一个IP地址 激活并重启查看
[rootserver ~]# nmcli c up ens160
[rootserver ~]# nmcli c reload
[rootserver ~]# ip addr方式二nmcli命令
1、格式
[rootserver ~]# nmcli --help
用法nmcli [选项] 对象 { 命令 | help }2、查看虚拟机网卡信息
[rootserver ~]# nmcli c show
[rootserver ~]# nmcli c show 网卡名 # 查看网卡详细信息点q退出
[rootserver ~]# nmcli dev status # 查看已有设备的状态
[rootserver ~]# nmcli dev show # 查看所有硬件设备状态3、激活网卡和关闭连接
[rootserver ~]# nmcli c up 网卡名
[rootserver ~]# nmcli c down 网卡名 # 停用连接4、添加网络连接
[rootserver ~]# nmcli c add type ethernet ifname ens160 con-name ens161 autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
[rootserver ~]# nmcli c up ens161 # 激活
[rootserver ~]# nmcli c show命令解释
关键字nmcli c add type网络类型ethernet现有网卡名ifname ens160新网络名称con-name ens161开启自动连接autoconnect yes新连接的IP地址与网关地址ip4 192.168.48.135/24 gw4 192.168.48.2
5、修改网络连接
通过ens160连接设置静态ip地址
[rootserver ~]# nmcli c mod ens160 ipv4.method manual ipv4.addresses 192.168.48.150/24 ipv4.gateway 192.168.48.2 ipv4.dns 114.114.114.114 [rootserver ~]# nmcli c up ens160 # 激活
连接已成功激活D-Bus 活动路径/org/freedesktop/NetworkManager/ActiveConnection/7
[rootserver ~]# ip a # 查看结果
1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:dc:cf:14 brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.48.150/24 brd 192.168.48.255 scope global noprefixroute ens160ipv4.method manual 手动获取静态通过配置文件查看和编辑
[rootserver ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection
# 配置
[ipv4]
address1192.168.48.150/24,192.168.48.2
dns114.114.114.114;
methodmanual
# 格式
[ipv4]
address1IP地址/24,网关地址
dns114.114.114.114;
methodmanual删除网络连接
[rootserver ~]# nmcli c show # 查看网络连接
[rootserver ~]# nmcli c del ens161 # 删除
[rootserver ~]# nmcli c show # 再次查看配置完毕后需要快照
二、例行性工作
场景 生活中我们有太多场景需要使用到闹钟比如早上 7 点起床下午 4 点开会晚上 8 点购物等等。 在 Linux 系统里我们同样也有类似的需求。比如我们想在凌晨 1 点将文件上传服务器或者在晚上 10 点确认系统状态等等。 但我们不可能一直守在电脑前毕竟我们也需要下班/睡觉还要陪女朋友new一个也行。而且即使在上班期间如果到点了还需要人工操作未免效率太低了。 at 命令就是为这个需求而诞生的。使用 at 命令你可以在特定时间自动完成你所设定的任务也可以实现自动化非常方便快捷
1、单一执行的例行性工作
单一执行的例行性任务–at一次性 1、安装
at命令一般会默认安装在系统中通过下列命令查看版本号
[rootserver ~]# at -V
at version 3.1.23查看执行的状态
[rootserver ~]# systemctl status atd # 查看状态
[rootserver ~]# systemctl enable --now atd # 开机启动并当前立刻启动2、at命令详解 1、格式
at -参数 日期时间2、举例
[rootserver ~]# at 14:08
warning: commands will be executed using /bin/sh
at ls /root at.txt
at EOT # 按下ctrld退出输入状态
job 1 at Sat Aug 19 14:08:00 2023
[rootserver ~]# at -l # 浏览计划任务列表
[rootserver ~]# ls # 查看结果
公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg at.txt
[rootserver ~]# cat at.txt 3、参数详情
-l:列出系统中所有用户的at任务
atq等价于at -l-d 删除或取消一个任务
-v 使用时间格式累出at任务
-c 可以列出任务后的命令内容
-f 从文件中读取4、举例
不使用交互命令实现at任务
[rootserver ~]# echo echo hello again at.txt | at now 1 minute^C
[rootserver ~]# cat at.txt5、时间格式
参数说明HH:MM在今天HH小时的MM分钟执行若时间错过则在明天执行HH:MM YYYY-MM-DD规定在某年某月某日的特殊时间执行now 数字 时间单词now 2 mintuesnow 3 hoursmow 4 daysnow 5 weeks
6、注意
at命令只要指定的时间正确就可以执行对应的命令at命令的输出结果不会显示到屏幕上at命令中执行的命令最好使用绝对路径不容易报错过程输入at 时间 - 回车 -输入执行的命令-ctrld退出atat命令只会执行一次
7、at命令执行过程分析
第一步寻找/etc/at.allow 白名单是否存在写在该文件中用户才可执行at命令第二步若/etc/at.allow不存在则寻找/etc/at.deny(黑名单)文件写在该文件中的用户不能使用at命令第三步若两个文件都不存在则只有root用户可以使用at命令注意若拒绝某用户使用at命令则可以将用户名写入到/etc/at.deny中
8、举例
设置某些账户不可用at命令
[rootserver ~]# useradd ce1 # 新建账户
[rootserver ~]# passwd ce1 # 设置密码
更改用户 ce1 的密码 。
新的密码
无效的密码 密码少于 8 个字符
重新输入新的密码
passwd所有的身份验证令牌已经成功更新。
[rootserver ~]# id ce1 # 查看账户信息
用户id1001(ce1) 组id1001(ce1) 组1001(ce1)[rootserver ~]# tail -1 /etc/passwd # 查看账户信息
ce1:x:1001:1001::/home/ce1:/bin/bash[rootserver ~]# vim /etc/at.deny # 编辑黑名单
# 写入ce1[rootserver ~]# su ce1 # 切换账户
[ce1server root]$ cd ~
[ce1server ~]$ at 14:44 # 由于ce1在黑名单中则禁止使用at命令
You do not have permission to use at.
[ce1server ~]$ su root # 切换回root账户
密码
[rootserver ce1]# vim /etc/at.deny # 编辑黑名单
# 删除ce1
[rootserver ce1]# su ce1 # 切换账户
[ce1server ~]$ at 14:46 # 可以使用at命令
warning: commands will be executed using /bin/sh
at
at EOT # ctrld 退出
job 6 at Sat Aug 19 14:46:00 2023
[ce1server ~]$ su root 9、练习白名单以及黑名单
[rootserver ~]# id ce1
用户id1001(ce1) 组id1001(ce1) 组1001(ce1)
[rootserver ~]# tail -1 /etc/passwd
ce1:x:1001:1001::/home/ce1:/bin/bash
[rootserver ~]# vim /etc/at.deny
[rootserver ~]# cat /etc/at.deny
ce1
[rootserver ~]# su ce1
[ce1server root]$ cd
[ce1server ~]$ at 14:44
You do not have permission to use at.
[ce1server ~]$ su root
密码
[rootserver ce1]# vim /etc/at.deny
[rootserver ce1]# cat /etc/at.deny [rootserver ce1]# su ce1
[ce1server ~]$ at 14:45
warning: commands will be executed using /bin/sh
at EOT
job 3 at Sun Aug 20 14:45:00 2023
[ce1server ~]$ su root
密码
[rootserver ce1]# cd
[rootserver ~]# vim /etc/at.allow
[rootserver ~]# su fox
[foxserver root]$ at
You do not have permission to use at.
[foxserver root]$ su root
密码
su: 鉴定故障
[foxserver root]$ su root
密码
[rootserver ~]# vim /etc/at.allow
[rootserver ~]# cat /etc/at.allow
fox
[rootserver ~]# su fox
[foxserver root]$ at
Garbled time
[foxserver root]$ at 14:56
warning: commands will be executed using /bin/sh
at EOT
job 4 at Sat Aug 19 14:56:00 2023
[foxserver root]$ su root
密码
[rootserver ~]# vim /etc/at.deny
[rootserver ~]# su fox
[foxserver root]$ at
Garbled time
[foxserver root]$ su root
密码
su: 鉴定故障
[foxserver root]$ su root
密码
[rootserver ~]# vim /etc/at.allow
[rootserver ~]# cat /etc/at.deny
fox
[rootserver ~]# su fox
[foxserver root]$ at
You do not have permission to use at.2、循环执行的例行性工作
循环执行的例行性任务–crontab周期性 1、crontd服务
at 命令是在指定的时间只能执行一次任务,crontab 命令可以循环重复的执行定时任务,与Windows 中的计划任务有些类似crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程在安装完成操作系统后默认会安装 crond 服务工具且 crond 服务默认就是自启动的若需要安装则执行如下命令
[rootserver ~]# yum install crontabs # 安装
[rootserver ~]# systemctl status crond # 查看状态crond 进程每分钟会定期检查是否有要执行的任务如果有则会自动执行该任务crontab 命令需要 crond 服务支持 linux 任务调度的工作主要分为以下两类 系统执行的工作系统周期性所要执行的工作如备份系统数据、清理缓存个人执行的工作某个用户定期要做的工作例如每隔 10 分钟检查邮件服务器是否有新信这些工作可由每个用户自行设置
2、crontab工作过程 当系统中有 /etc/cron.allow 文件时只有写入此文件的用户可以使用 crontab 命令没有写入的用户不能使用 crontab 命令。同样如果有此文件/etc/cron.deny 文件会被忽略因为 /etc/cron.allow 文件的优先级更高 当系统中只有 /etc/cron.deny 文件时写入此文件的用户不能使用 crontab 命令没有写入文件的用户可以使用 crontab 命令 crontab 执行的每一项工作都会被 记录到 /var/log/cron 这个日志文件中 当用户使用 crontab 新建工作之后该项工作就会被记录到 /var/spool/cron/目录里面
3、crontab命令详解 1、格式
crontab [-u user] [-l| -r | -e] 2、参数
参数说明-u只有root才能执行该任务-e编辑crontab工作内容-l查询crontab任务内容-r删除cronatb任务
3、编辑crontab
格式
crontab -e注意写入的命令一行一个命令每行共6段时间 命令时间共5段意义如下
表示意义分钟小时日期月份星期数字范围0-590-231-311-120-70和7都表示星期日
4、特殊字符
* : 任意时刻
- 表示范围
,(逗号) 分割时段
*/数字 指定时间间隔频率,如每3分钟执行一次:*/35、时间描述示例
1 2 * * * 每天凌晨2点1分执行动作
0 17 * * 1 每周一下午17点整执行动作
0 5 1,15 * * 每月1日和15日凌晨5点执行动作
40 4 * * 1-5 每周一至周五凌晨4点40分执行动作
*、10
*/10 4 * * * : 每天凌晨4点每隔10分钟执行动作
3,15 8-11 */2 * * :每隔2天上午8-11点的第3分钟和第15分钟执行动作
* * * * * 每隔1分钟执行动作三、书写定时任务的注意事项
6 个字段都不能为空如果不确定则使用*表示任意时间crontab命令任务的最小时间单位为分钟最大有效时间为月如2024年某时执行、3点30分30秒这样的时间日期无法被识别定义时间时日期和星期最好不要一起出现由于都是以天为单位非常让管理员混淆在定时任务中不能不管是写命令还是在脚本中写命令最好都用绝对路径相对路径有时会报错
四、系统级别的计划任务
crontab -e 时每个用户都可以执行的命令但有时定时任务必须由系统执行此时就需要编辑/etc/crontab配置文件来实现主配置文件
[rootserver ~]# vim /etc/crontab仅能通过root定义不可以使用普通账户身份去执行计划任务方法在/etc/crontab 最后一行新增计划任务即可
SHELL/bin/bash
PATH/sbin:/bin:/usr/sbin:/usr/bin
MAILTOroot# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed分析
SHELL/bin/bash 指定系统使用那个shell解释器去执行PATH/sbin:/bin:/usr/sbin:/usr/bin 系统执行命令的搜索路径MAILTOroot 表示执行任务的信息通过邮件发送给谁user-name 表示执行命令的用户是谁
五、实验
1、实验一编写脚本test.sh并执行
1、编写脚本test.sh
[rootserver ~]vim test.sh#!/bin/bashwhile :
doecho this is my test sh$(date) /root/cro.txtsleep 1
done2、设置周期性的计划任务
[rootserver ~]# crontab -e
*/1 * * * * /bin/bash /root/test.sh注意crond服务会自动启动crontab命令只要保存就会生效
3、查看任务
[rootserver ~]# crontab -l*/1 * * * * /bin/bash /root/test.sh[rootserver ~]# cat /root/cro.txt 4、删除任务
[rootserver ~]# crontab -r # 删除
[rootserver ~]# crontab -l # 查看
no crontab for root5、终止循环进程
[rootserver ~]# ps -aux | grep test # 查看已存在的test进程
[rootserver ~]# kill -9 进程号 # 强制终止示例
[rootserver ~]# ps -aux | grep test
root 2514 0.1 0.1 222516 3460 ? Ss 15:31 0:00 /bin/bash /root/test.sh
root 2664 0.1 0.1 222516 3404 ? Ss 15:32 0:00 /bin/bash /root/test.sh
root 2918 0.1 0.1 222516 3476 ? Ss 15:33 0:00 /bin/bash /root/test.sh
root 3445 0.0 0.1 221680 2360 pts/0 S 15:34 0:00 grep --colorauto test
[rootserver ~]# kill -9 2514
[rootserver ~]# kill -9 2664
[rootserver ~]# kill -9 2918
[rootserver ~]# ps -aux | grep test
root 3753 0.0 0.1 221680 2344 pts/0 S 15:35 0:00 grep --colorauto test2、实验二设置邮件报警及例行性发送功能
1、登陆qq邮箱在最上栏找到账号点击并找到这个服务点击启动服务会让手机发送验证码。 2、到下一个界面并将授权码复制并保存之后会用到3、安装邮件服务
[rootserver ~]# yum install s-nail -y
上次元数据过期检查0:51:48 前执行于 2023年08月19日 星期六 14时56分45秒。
依赖关系解决。
软件包 架构 版本 仓库 大小安装:s-nail x86_64 14.9.22-8.el9 AppStream 622 k事务概要安装 1 软件包总下载622 k
安装大小1.1 M
下载软件包
s-nail-14.9.22-8.el9.x86_64.rpm 851 kB/s | 622 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------
总计 847 kB/s | 622 kB 00:00
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务准备中 : 1/1 运行脚本: s-nail-14.9.22-8.el9.x86_64 1/1 安装 : s-nail-14.9.22-8.el9.x86_64 1/1 运行脚本: s-nail-14.9.22-8.el9.x86_64 1/1 验证 : s-nail-14.9.22-8.el9.x86_64 1/1 已安装:s-nail-14.9.22-8.el9.x86_64 完毕4、配置邮件服务
[rootserver ~]# vim /etc/s-nail.rc这里在最后加下面这几条命令。
set from17674044qq.com
set smtpsmtp.qq.com
set smtp-auth-userqq邮箱
set smtp-auth-password授权码
set smtp-authlogin注意文件配置完毕需要强制保存并退出末行模式下输入wq!(由于这个文件为只读文件) 查看
[rootserver ~]# vim /etc/s-nail.rc
[rootserver ~]# tail -5 /etc/s-nail.rc
set smtpsmtp.qq.com
set smtp-auth-user3103646008qq.com
set smtp-auth-passwordrxjivbmohdytddjh
set smtp-authlogin[rootserver ~]# ll /etc/s-nail.rc
-r--r--r-- 1 root root 9771 8月 19 15:57 /etc/s-nail.rc5、测试
[rootserver ~]# echo testmail | mail -s testmail 1927875806qq.com
s-nail: Warning: $LOGNAME (fox) not identical to user (root)!
s-nail: Warning: $USER (fox) not identical to user (root)!
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Warning: variable superseded or obsoleted: smtp-auth-user
s-nail: Warning: variable superseded or obsoleted: smtp-auth-password
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail: Please read the manual section On URL syntax and credential lookup
[rootserver ~]# echo testmail | mail -s testmail 3103646008qq.com
s-nail: Warning: $LOGNAME (fox) not identical to user (root)!
s-nail: Warning: $USER (fox) not identical to user (root)!
s-nail: Warning: variable superseded or obsoleted: smtp
s-nail: Warning: variable superseded or obsoleted: smtp-auth-user
s-nail: Warning: variable superseded or obsoleted: smtp-auth-password
s-nail: Obsoletion warning: please do not use *smtp*, instead assign a smtp:// URL to *mta*!
s-nail: Obsoletion warning: Use of old-style credentials, which will vanish in v15!
s-nail: Please read the manual section On URL syntax and credential lookup这里我们发送了两封测试邮件发送成功则为上一步配置成功。
6、设置周期性的任务,每隔1分钟发送邮件
[rootserver ~]# crontab -e
MAILTOqq邮箱* * * * * echo 警告,server服务器内存较低请速处理. | mail -v -s 告警邮件 qq邮箱这里配置即为每分钟发送一次。
3、实验三
每天6:00将日志文件/var/log/messages 文件进行备份备份到/backup目录中备份时需要将文件名修改为logfileYYYY-MM-DD-HH:MM:SS
[rootserver ~]# mkdir /backup[rootserver ~]# vim /etc/crontab
0 6 * * * root /usr/bin/cp /var/log/messages /backup/logfiledate \%Y-\%m-\%d-\%H:\%M:\%S # 注意# 反引号表示将引起的内容识别为命令# 在crontab中%表示换行需要增加转义符\进行转义[rootserver ~]# mkdir /backup
[rootserver ~]# vim /etc/crontab
[rootserver ~]# vim /etc/crontab
[rootserver ~]# cd /backup/
[rootserver backup]# ls
logfile2023-08-19-16:37-01 logfile2023-08-19-16:38-01
[rootserver backup]# ll
总用量 2344
-rw------- 1 root root 1196788 8月 19 16:37 logfile2023-08-19-16:37-01
-rw------- 1 root root 1196788 8月 19 16:38 logfile2023-08-19-16:38-01
[rootserver backup]# cd
[rootserver ~]# vim /etc/crontab
[rootserver ~]# cat /etc/crontab
SHELL/bin/bash
PATH/sbin:/bin:/usr/sbin:/usr/bin
MAILTOroot# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed