news 2026/10/27 1:55:23

Rhcsa 二

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rhcsa 二

第一部分 网络服务

第一章 Linux的例行性工作

单一一次的任务计划(单一一次的定时任务)

at程序包是否安装

[root@localhost ~]# rpm -q at at-3.1.23-11.el9.x86_64 [root@localhost ~]# rpm -qa | grep -w at at-spi2-core-2.40.3-1.el9.x86_64 at-spi2-atk-2.38.0-4.el9.x86_64 at-3.1.23-11.el9.x86_64

软件程序是否运行

[root@localhost ~]# ps -aux | grep -w atd root 1195 0.0 0.2 12472 4992 ? Ss 18:13 0:00 /usr/sbin/atd -f root 2442 0.0 0.1 221812 2688 pts/0 S+ 18:57 0:00 grep --color=auto -w atd [root@localhost ~]# systemctl status atd ● atd.service - Deferred execution scheduler Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; preset: enabled) Active: active (running) since Wed 2026-10-21 18:13:02 CST; 44min ago Docs: man:atd(8) Main PID: 1195 (atd) Tasks: 1 (limit: 10707) Memory: 896.0K CPU: 13ms CGroup: /system.slice/atd.service └─1195 /usr/sbin/atd -f [root@localhost ~]# systemctl is-active atd active [root@localhost ~]# yum install at -y #没安装通过该命令安装

单一一次的定时任务at命令

-m:当任务完成后,即使没有标准输出,也会给用户发送邮件 --了解
-l:列出系统上所有用户的at任务,等价于atq
-d:删除或取消一个任务
-v:任务项以前显示时间,列出at任务
-c:可以列出任务之后的命令内容
-f:从文件中读取

时间格式

参数说明
HH:MM在今天HH小时的MM分钟执行,若时间点错过,将在明天执行
HH:MM YYYY-MM-DD规定在某年某月的某一天的特殊时刻执行该工作
now +2 minutes从现在开始的minutes、hours、days、weeks执行
4pm12am 00:00

命令用法示例:

[root@node1 ~]# at 12:12 warning: commands will be executed using /bin/sh at> touch file111 #执行任务 at> <EOT> #ctrl-D job 1 at Thu Oct 22 12:12:00 2026 #查看 [root@node1 ~]# at -l 1 Thu Oct 22 12:12:00 2026 a root [root@node1 ~]# atq 1 Thu Oct 22 12:12:00 2026 a root #删除 [root@node1 ~]# at -d 1 #通过任务文件匹配任务 [root@node1 ~]# at -f at.txt 12:12 warning: commands will be executed using /bin/sh job 3 at Thu Oct 22 12:12:00 2026
[root@localhost ~]# wall haha wall: /dev/seat0: 没有那个文件或目录 来自 root@localhost.localdomain (pts/0) (Wed Oct 21 19:22:52 2026) 的广播 haha [root@localhost ~]# at now +2 minutes warning: commands will be executed using /bin/sh at> wall 外面太吵了 at> <EOT><EOT> job 7 at Wed Oct 21 19:25:00 2026 [root@localhost ~]#
配置文件:程序运行参数文件,程序按照约定格式读取从而决定怎么软件如何运行。

/etc/at.allow(白名单)

/etc/at.deny(黑名单)

定义的任务文件存放位置

/var/spool/at

周期任务crontab

crontabs程序是否存在

[root@node1 at]# dnf list installed | grep crontabs crontabs.noarch 1.11-27.20190603git.el9_0 @anaconda
crond程序运行状态
[root@node1 at]# ps -aux | grep crond root 1142 0.0 0.2 223976 3676 ? Ss 18:48 0:00 /usr/sbin/crond -n root 3101 0.0 0.1 221812 2588 pts/0 S+ 19:58 0:00 grep --color=auto crond [root@node1 at]# systemctl status crond ● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; preset: enabled) Active: active (running) since Wed 2026-10-21 18:48:26 CST; 1h 10min ago Main PID: 1142 (crond) Tasks: 2 (limit: 10289) Memory: 1.5M (peak: 4.2M) CPU: 38ms CGroup: /system.slice/crond.service ├─1142 /usr/sbin/crond -n └─2748 /usr/sbin/anacron -s Oct 21 19:01:01 node1 run-parts[2738]: (/etc/cron.hourly) starting 0anacron Oct 21 19:01:01 node1 anacron[2748]: Anacron started on 2026-10-21 Oct 21 19:01:01 node1 anacron[2748]: Will run job `cron.daily' in 42 min. Oct 21 19:01:01 node1 anacron[2748]: Will run job `cron.weekly' in 62 min. Oct 21 19:01:01 node1 anacron[2748]: Will run job `cron.monthly' in 82 min. Oct 21 19:01:01 node1 anacron[2748]: Jobs will be executed sequentially Oct 21 19:01:01 node1 run-parts[2750]: (/etc/cron.hourly) finished 0anacron Oct 21 19:01:01 node1 CROND[2734]: (root) CMDEND (run-parts /etc/cron.hourly) Oct 21 19:43:01 node1 anacron[2748]: Job `cron.daily' started Oct 21 19:43:01 node1 anacron[2748]: Job `cron.daily' terminated [root@node1 at]# systemctl is-active crond active

crontab周性任务管理命令用法

参数解释示例
-llist 查看定时任务crontab -l
-eedit 编辑定时任务,建议手动编辑crontab -e
-i删除定时任务,提示用户确认删除,避免出错crontab -i
-r删除定时任务,移除/var/spool/cron/username文件crontab -r
-u user指定用户执行任务,root 可以管理普通用户计划任务crontab -u redhat -l
代表意义分钟小时日期月份星期命令
数字范围0-590-231-311-120-7(0和7表示周日)执行的动作
特使字符含义
*任意时刻
-表示时间范围1-5
,(逗号)分割时段 月 1,3
*/数字指定时间间隔的频率,如:每3分钟执行一次

crontab命令用法示例 ---用户级别定义(单用户)

[root@node1 at]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [root@node1 at]# crontab -l # 分 时 日 月 周 任务 * * * * * touch /crontab1 [root@node1 at]# ll /crontab1 -rw-r--r--. 1 root root 0 Oct 21 20:06 /crontab1 [root@node1 at]# #清空周期性任务 [root@node1 at]# crontab -r [root@node1 at]# crontab -l #周期性任务文件位置 [root@node1 at]# ll /var/spool/cron/ total 4 -rw-------. 1 root root 25 Oct 21 20:09 root [root@node1 at]# vim /var/spool/cron/root

/etc/crontab 定义周期性任务(系统级别可以是系统中任意用户定义周期性任务)

课堂练习:

定时发送邮件

企业应用场景:判断当前系统内存是否不足,如果内存使用率超过80%需要给运维管理员以邮箱方式发送警告提示

通过linux通过邮箱客户端s-nail 登录邮箱账户,能够给其他邮箱用户发送邮件

1.安装s-nail软件

[root@node1 at]# mkdir /sr0 [root@node1 at]# mount /dev/sr0 /sr0 mount: /sr0: WARNING: source write-protected, mounted read-only. 2.[root@node1 ~]# cat /etc/yum.repos.d/base.repo [AppStream] name=AppStream baseurl=file:///sr0/AppStream gpgcheck=0 [BaseOS] name=BaseOS baseurl=file:///sr0/BaseOS gpgcheck=0 3.[root@node1 ~]#dnf install s-nail -y

2.在该软件软件登录邮箱账户

[root@node1 ~]# tail -6 /etc/s-nail.rc ################################################## set from=lxx1xxxxxx@163.com set smtp=smtp.163.com set smtp-auth-user=lxx1xxxxx8@163.com set smtp-auth-password=VRxxxxx set smtp-auth=login

3.发送邮件

[root@node1 ~]# echo "邮件内容" | mail -s "邮件主题" lxx1065372838@163.com

周期性触发定时发送邮件

[root@node1 ~]# crontab -e crontab: installing new crontab [root@node1 ~]# crontab -l 26 * * * * echo "尽快处理问题" | mail -s "内存严重不足" lxx1065372838@163.com

第二章 Chrony服务器

1.服务(网络):由一方按照约定方式给用户或者主机程序提供对应功能、数据、计算能力。

服务响应方式:被动方式

OSI

应用层:数据传输的标准协议 ntp ssh http/https nfs/ftp

表示层:数据格式转换 编码

会话层:通信会话

传输层 端口:TCP 可靠传输 效率低

UDP 不可靠 高

网络层:ip 源ip 目标ip 发送 主机地址标记

数据链路层:MAC

物理接口:ens160

TCP/IP

应用层 应用层协议 +数据 chrony(ntp) http/https dns ssh chrony(ntp) nfs

传输层 端口:TCP 可靠传输 效率低

网络层 ip sip dip

物理接口 ens160

配置文件:

守护进程(daemon):不依赖终端窗口进程在主机后台运行,正常系统运行中不手动结束进程是实时运行的。

Chrony时间服务

时间管理命令:

hwclock

-s 硬件时间到系统时间

-w 系统时间到硬件时间

date 月日时分年点秒

-s 设置时间

+%F%T

timedatectl set-timezone 时区

软件程序 chrony/ntp

netstat 查看报文监听结果

-t TCP

-u UDP

ss 查看报文监听结果

软件程序 chrony

NTP (network time protocal ) 网络时间协议

守护进程(daemon):程序运行后再主机后运行,且该程序进程不依赖终端设备,不会因终端退出结束进程,只有系统重启进程才会受影响

NTP:应用层协议 网络时间协议,提供时间的查看的校验

端口:区分不同程序进行数据交互 ntp协议的端口是123/udp

配置文件介绍/etc/chrony.conf

客户端 pool 2.rhel.pool.ntp.org iburst # 池 时间服务器的主机名 初始化爆发 pool 3.rhel.pool.ntp.org iburst #上层服务器存储池 间服务器的主机名 服务端主机 # local stratum 10 #标记时间服务器主机的层级 1-16 # allow 192.168.0.0/16 #允许哪些客户端主机可以发起请求连接

实验一:自定义时间服务能够给客户端主机进行时间校时

环境准备 S/C

server (linux) --- 192.168.211.131

client (linux) --- 192.168.211.132

1.server主机
1.判断chrony软件程序是否安装 2.判断软件是否启动 3.自定义软件功能(ntp时间服务器) vim /etc/chrony.conf #pool 2.rhel.pool.ntp.org iburst #当前主机的时间就是标准时间,不再通过上层服务器进行校时 allow 172.25.250.0/24 #哪些客户端主机发起校时请求 local stratum 10 #1-16 指定自定义时间服务区的层级 4.加载新的配置 systemctl restart chronyd 5.关闭防火墙,selinux systemctl stop firewalld #立即停止防火墙 systemctl disable firewalld #取消防火墙的开机自启 systemctl status firewalld #查看防火墙服务状态 setenforce 0 #临时把selinux设置为permissive(宽容模式) getenforce #查看selinux状态 Permissive 关闭 | enforce 开启 vim /etc/selinux/config SELINIUX=Permissive #永久关闭
2.client
1.判断chrony软件程序是否安装 2.判断软件是否启动 3.自定义软件功能(ntp时间客户端) vim /etc/chrony.conf pool 192.168.211.131 iburst 4.辨别时间校时是否成功 date 月日时分年月点秒 5.发起时间同步请求 systemctl restart chronyd 6.判断 [root@client-146 ~]# date Fri Dec 12 10:10:38 AM CST 2025 [root@client-146 ~]# date Fri Dec 12 10:10:39 AM CST 2025 [root@client-146 ~]# date Sat Oct 24 11:46:23 AM CST 2026 [root@localhost ~]# chronyc sources -v # -v参数表示显示内容是否有解释 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current best, '+' = combined, '-' = not combined, | / 'x' = may be in error, '~' = too variable, '?' = unusable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 203.107.6.88 2 6 177 8 +18ms[ +19ms] +/- 48ms ^*:server 类型,当前最优同步源 Stratum 3:三层时间服务器 Poll 6:每64秒同步一次 Reach 377:最近8次全部连通 377八进制表示8次连通,八进制377 = 二进制 11111111,8位全1 LastRx 12:12秒前刚收到回复 offest -423us:本机比NTP服务器慢423微秒

实验二:主机通过外网时间服务器进行校时

1.更改配置同步外网时间服务器 ntp.aliyun.com vim /etc/chrony.conf pool ntp.aliyun.com iburst 2.发起校时请求 systemctl restart chronyd 3.查看同步的服务器 [root@localhost ~]# chronyc sources -v # -v参数表示显示内容是否有解释 [root@client-146 ~]# chronyc sources MS Name/IP address Stratum Poll Reach ========================================================================== ^* 203.107.6.88 3 6 17 35ms [root@client-146 ~]# ping ntp.aliyun.com PING ntp.aliyun.com(203.107.6.88) 56(84) byte 64 bytes from 203.107.6.88 (203.107.6.88): icms

问题分析

1.客户端主机和服务端主机网络互通 ping 2.包能不能正常请求 pool SERVERNAME iburst 3.服务端是否可以成功响应 allow 主机/主机网段 4.服务程序不能成功启动错误分析方式 [root@server-142 ~]# journalctl -xeu chronyd.service # 早期启动的日志结果也会记录 时间不能同步的另外两个细节: 两台主时区不一致 时间偏差过大

第三章 SSH远程登陆服务

1.概念

2.telnet:能够通过当前主机远程连接对端主机通过命令行接口进行控制管理

23 / tcp 数据明文传输

搭建telnet远程连接服务支持终端主机设备,能够通过telnet进行远程连接

server (linux) --- telnet-server --- 192.168.211.131

client(windows) --- xshell --- 192.168.211.1

server端 1.部署telnet服务 dnf install telnet-server -y 2.启动服务监听23/tcp端口等待客户端主机的请求连接 systemctl start telnet.socket client xshell 发起telnet连接 [C:\~]$ telnet 192.168.211.131 Connecting to 192.168.211.131:23... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. Kernel 5.14.0-570.12.1.el9_6.x86_64 on an x86_64 localhost login: root Password: Last login: Sat Oct 24 16:07:50 from ::ffff:192.168.211.1 [root@nodel -]# dnf install wireshark -y 通过主机图形化终端启动wireshark程序 [root@nodel ~]# wireshark 16:10:23.189 Main Info Warning: Ignoring XDG_SESSION_TYPE=Wayland on Gnome. Use QT_OPALPLATFORM=wayland to run on Wayland anyway.

3.ssh secure shell:能够通过当前主机远程连接对端主机通过命令行接口进行控制管理

22 / tcp 数据加密传输

实验二:部署ssh远程
openssh-clients-8.7p1-45.el9.x86_64 客户端程序名-----ssh
openssh-server-8.7p1-45.el9.x86_64 服务程序名

查看ssh程序网络监听信息 [root@localhost ~]# ss -tunlp | grep ssh tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1154,fd=3)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1154,fd=4)) [root@localhost ~]# netstat -tunlp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1154/sshd: /usr/sbi tcp6 0 0 :::22 :::* LISTEN 1154/sshd: /usr/sbi 查看指定端口监听的程序 [root@localhost ~]# lsof -i:22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1154 root 3u IPv4 19184 0t0 TCP *:ssh (LISTEN) sshd 1154 root 4u IPv6 19186 0t0 TCP *:ssh (LISTEN)

安全加固管理

vim /etc/ssh/sshd_config Port 2222 AllowUsers 用户名1 用户名2 vim /etc/ssh/sshd_config.d/01-permitrootlogin.conf PermitRootLogin no 秘钥验证

配置文件初始化:重装软件程序

编辑配置文件时:记得对配置文件进行备份

主配置

/etc/ssh/sshd_conf

/etc/ssh/ssh_conf --- 客户端的配置文件

子配置文件

/etc/ssh/sshd_config.d/*.conf

自配置文件名的数值越小级别越高优先读取

SSH建立远程连接的原理

1.tcp三次握手

2.版本协商

3.对称算法的协商阶段(数据加密算法的协商)

4.身份验证

身份伪装

数据泄露

加密算法:

对称加密算法:加密 解密用的是同一把秘钥 A秘钥---123? --- 加密&*&......&......>---B 秘钥

秘钥不允许发送

数据双向传输

数据传输的效率较高

非对称加密算法:加密解密用的是不同秘钥 私钥 --- 数据解密 公钥 --- 数据加密

私钥:留到制作端主机不允许公开发送

公钥:公开发送所有用户都能够获取

数据仅支持单向传输(身份验证)

A私钥 B公钥

公钥

密钥交换算法:Diffie-Hellman(DH)密钥交换算法 ----非对称算法

服务端验证客户端身份通过秘钥验证

服务验证客户端主机身份

1.客户端提前将自己的公钥(如~/.ssh/id_rsa.pub)上传到服务器的~/.ssh/authorized_keys 文件中;

2.验证时,服务器生成一个随机字符串,用服务端公钥加密后发送给客户端;

3.客户端用自己的私钥解密,得到随机字符串,再用会话密钥加密后返回给服务器;

4.服务器解密并对比原始随机字符串,一致则验证通过。

宿舍远程实现秘钥验证(免密登录)

预处理:2台机子都恢复快照
第一步:定位客户端,制作公私钥对

客户端:192.168.48.128
服务端:192.168.48.130

[root@nodel ~]# ssh-keygen -t rsa #一路回车

第二步:定位客户端,将公钥上传到服务器端

[root@nodel ~]# ssh-copy-id root@192.168.48.130 # 输入服务端的账户及IP地址 The authenticity of host '192.168.48.130 (192.168.48.130)' can't be established. ED25519 key fingerprint is SHA256:K7nvJFkfIh+p9YytEGR44wLbTfpB0Y52oVou0UdG6nc. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 输Ayes /usr/bin/ssh-copy-id: INFo: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys root@192.168.48.130's password: #输入服务端root账户的的密码 Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'root@192.168.48.130'" and check to make sure that only the key(s) you wanted were added. #注意:客户端将公钥上传到服务器端后,服务器端的/root/.ssh/authorized_keys文件会存储客户端的公钥数据

第三步:客户端测试

[root@nodel ~]# ssh root@192.168.48.130 Activate the web console with: systemctl enable --now cockpit.socket Register this system with Red Hat Insights: insights-client --register Create an account or view all your systems at https://red.ht/insights-dashboard Last login: Wed Mar 22 11:31:31 2023 [root@server ~]#

实验三 通过window---xshell和服务器主机进行秘钥验证

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 1:55:21

深圳标杆游学机构排名测评:从资源、执行到口碑的多维排序

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:54:54

学术年会策划公司哪家好?2026年靠谱学术会议

直接说结论&#xff1a;学术年会的筹备复杂度远高于普通商务会议——论文征集、审稿对接、日程编排、嘉宾邀请、出版衔接环环相扣&#xff0c;任何一环出问题都可能引发连锁反应。因此&#xff0c;选策划公司不能只看报价&#xff0c;关键看它有没有真正的学术会议承办经验、是…

作者头像 李华
网站建设 2026/10/27 1:54:51

PS引脚不够用?安路DR1M90通过PS_PLIO轻松扩展!

在FPSoC开发中&#xff0c;PS端&#xff08;ARM端&#xff09;的引脚数量往往是有限的。当项目需要连接大量外设时&#xff0c;该如何突破物理引脚的限制&#xff0c;实现灵活的系统设计&#xff1f;安路科技DR1M90 FPSoC提供的PS_PLIO技术&#xff0c;正是解决这一难题的利器。…

作者头像 李华
网站建设 2026/10/27 1:54:42

AI Agent产品选型指南:从技术原理到实践应用

1. AI Agent技术浪潮下的产品选型困境去年我在为一家金融科技公司设计智能客服系统时&#xff0c;面对市场上二十余种标榜"大模型赋能"的Agent产品&#xff0c;整整花了三周时间做技术验证。这期间踩过的坑让我深刻意识到&#xff1a;选择适合的AI Agent产品&#xf…

作者头像 李华
网站建设 2026/10/27 1:53:35

后端工程师GPU入门:从硬件心智模型到nvidia-smi排查实战

这篇是系列的第 02 篇。如果你跟我一样&#xff0c;是个长期跟 Java、Go、MySQL、Redis 打交道的后端工程师&#xff0c;某天突然接到一个任务——帮算法同事把一个模型服务部署到 GPU 上&#xff0c;你大概率会打开服务器敲一个nvidia-smi&#xff0c;然后看着满屏的利用率、显…

作者头像 李华