马哥sre云计算运维第4次作业

news2026/5/8 10:48:12
一、解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式TYPEEthernet# 网络类型这里为以太网类型PROXY_METHODnone# 代理方法没有BROWSER_ONLYno# 只浏览器使用 否 如果只是配置网卡的话没啥用可以去掉BOOTPROTOnone# 启动协议: 无或者写成static不使用DHCP自动获取IP是静态配置方式DEFROUTEyes# 默认路由 启用IPV4_FAILURE_FATALno# ipv4故障致命性否(关于ipv4配置失败会不会导致网络启动失败)IPV6INITyes# ipv6初始化是启用ipv6IPV6_AUTOCONFyes# ipv6自动配置是系统自动配置ipv6地址IPV6_DEFROUTEyes# ipv6默认路由是ipv6的路由IPV6_FAILURE_FATALno# ipv6故障致命性否(关于ipv6配置失败会不会导致网络启动失败)IPV6_ADDR_GEN_MODEstable-privacy# IP地址生成模式NAMEeth0# 网络接口名称UUIDxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx# 网络接口的唯一标识符DEVICEeth0# 设备名称与网络接口名称一致ONBOOTno# 开启时自启动IPADDR10.0.0.13# ipv4地址静态配置的、PREFIX24# IP地址掩码GATEWAY10.0.0.2# 默认网关DNS110.0.0.2# DNS服务器地址DNS28.8.8.8# 次选DNS二、使用脚本判断 你主机所在网络内在线的主机IP有哪些 ping通则在线。[rootRocky10-12 ~]# cat -n testPing.sh1#!/bin/bash2# *********************************3# * 功能测试网络内在线的主机IP4# * 作者王波5# * 联系wangboqq.com6# * 版本2026-04-267# *********************************89# 网络位10ip_network10.0.011# 在线主机数初始化12online_hosts01314# 这里简单点24位的掩码所以有254个主机15foriin{1..254}16do17# 后台ping-c ping一次-w 等待1s不加的话需要等待10s18ping-c1-w1${ip_network}.${i}/dev/null2119# 判断上次执行命令的效果20if[$?-eq0]21then22# 成功输出ip并且总数加123echo${ip_network}.${i}在线24((online_hosts))25else26echo${ip_network}.${i}不在线27fi28done2930printf总共有%d台主机在线$online_hosts结果[rootRocky10-12 ~]# /bin/bash testPing.sh10.0.0.1 在线10.0.0.2 在线10.0.0.3 不在线10.0.0.4 不在线10.0.0.5 不在线10.0.0.6 不在线10.0.0.7 不在线10.0.0.8 不在线10.0.0.9 不在线10.0.0.10 不在线10.0.0.11 不在线10.0.0.12 在线10.0.0.13 在线10.0.0.14 不在线10.0.0.15 不在线10.0.0.16 不在线10.0.0.17 不在线10.0.0.18 不在线10.0.0.19 不在线10.0.0.20 不在线10.0.0.21 不在线10.0.0.22 不在线10.0.0.23 不在线10.0.0.24 不在线10.0.0.25 不在线10.0.0.26 不在线10.0.0.27 不在线10.0.0.28 不在线10.0.0.29 不在线10.0.0.30 不在线 总共有4台主机在线三、使用while read line和/etc/passwd计算用户id总和。1#!/bin/bash2# *********************************3# * 功能计算id总和4# * 作者王波5# * 联系wangboqq.com6# * 版本2026-04-267# *********************************89# 用户总数初始化10id_sum01112# 循环的方式逐行提取13whilereadline14do15# $()执行命令然后复制给uid变量. 将单行字符串重定向16uid$(cut-d:-f3${line})17# 判断是否大于100018if[${uid}-gt1000]19then20echo${uid}21# 如果大的话就自增22((id_sum))23fi24done/etc/passwd2526printf用户个数总共为%d${id_sum}结果[rootRocky10-12 ~]# /bin/bash calac_id_nums.sh6553410011002100310041005用户个数总共为6四、总结索引数组和关联数组字符串处理高级变量使用及示例。数组有序的元素序列它将有限个类型相同的数据放到一个集合中这个集合就是数组。数组样式一维数组数组[下标]二位数组数组[行下标][列下标]三位数组数组[行下标][列下标][页下标]bash支持一维数组(不支持多维数组)并且没有限定数组的大小。数组元素的下标由0开始编号。下标可以是整数或算术表达式其值应大于或等于0数组的创建用括号来表示数组数组元素用空格符号分割开array_name(value1 ... valuen)有单行定义、多行定义、单元素定义、命令定义等多种样式单行定义array_name(value0 value1 value2 value3)多行定义array_name(value0 value1 value2 value3)单元素定义:array_name[0]value单元素定义的时候可以不使用连续的下标而且下标的范围没有限制.命令定义:是value的值以命令方式来获取array($(ls /tmp/))数组取值获取内容读取数组元素值可以根据元素的下标值来获取${array_name[index]}${array_name[]:起始位置:获取数量}获取所有的元素内容下标位置写“或者”*获取数组索引${!array_name[index]}获取所有的元素位置下标位置写“或者”*获取数组长度的方法与获取字符串长度的方法相同${#array_name[index]}获取具体的元素长度指定其下标值从0开始获取所有的元素个数下标位置写“或者”*数组变动:元素修改:元素内容替换array_name[index]值元素部分内容替换可以参考字符串替换格式:${array_name[index]/原内容/新内容}默认是演示效果原数组未被修改如果真要更改需要结合单元素内容替换元素删除使用unset来实现删除单元素:unset array_name[index]删除整个数组:unset array_name支持同时删除多个数组名字数组关联数组的定制主要有两种2. 定制索引数组 - 数组的索引是普通的数字1.declare -a array_name2. 普通数组可以不事先声明,直接使用3. 定制关联数组 - 数组的索引是自定义的字母1.declare -A array_name2. 关联数组必须先声明,再使用不然就是将索引数组转换为关联数组但是他们之间不可以相互转换。bash [rootRocky10-12 ~ ]# aaa([yingyu]32 [yuwen]67 [shuxue]65) 当前位置 ~ [rootRocky10-12 ~ ]# declare -A aaa -bash: declare: aaa: 无法将索引数组转换为关联数组字符串基础知识字符串计数:${#file}获取字符串的长度在shell环境中默认情况下会将所有的信息都认为是 字符串。字符串截取:${var:pos:length}变量var从pos开始截取length个字符pos为空表示从0开始${file:0:5}从0开始【第1个字符】截取5个字符${file:5:5}从5开始【第6个字符】截取5个字符${file::5}从0开始【第1个字符】截取5个字符${file:0-6:3}从倒数第6个字符开始截取之后的3个字符${file: -4}返回字符串最后四个字符-前面是空格字符串表达式:内容比较判断:str1 str2判断str1和str2字符串内容一致str1 ! str2判断str1和str2字符串内容不一致!表示相反的意思内容空值判断-z str空值判断获取字符串长度长度为0返回True-n str非空值判断获取字符串长度长度不为0返回True高级变量变量间接引用通过一个变量名去引用另一个变量的值。# 定义一个变量名namevar# 定义实际变量varhello world# 间接引用${!name} 相当于取 $var 的值echo${!name}# 输出hello world# ${!var} 中的 ! 表示间接引用只能用于一层。特殊变量及其高级操作$0, $1, $2… 位置参数$# 参数个数$ 所有参数作为独立字符串$* 所有参数作为单个字符串$? 上一条命令的退出状态$$ 当前 Shell 的 PID五、求10个随机数的最大值与最小值#!/bin/bash# *********************************# * 功能Sehll 脚本模板# * 作者王波# * 联系wangboqq.com# * 版本2026-04-26# *********************************# 定义一个临时存储的值tmp0# 用循环定义一个随即数组里面有十个随机数foriin{1..10}do# (()) 只计算不输出$(())计算后输出random_array[$((i-1))]$RANDOMecho${random_array[$((i-1))]}done# 使用冒泡算法排序# 控制轮数foriin{1..9}doforjin{1..9}doif[${random_array[$((j-1))]}-lt${random_array[$j]}]then# 交换tmp${random_array[$((j-1))]}random_array[$((j-1))]${random_array[$j]}random_array[$j]$tmpfidonedoneecho-----------------------# 输出最大最小值printfmax is %d, min is %d${random_array[0]}${random_array[9]}结果[rootRocky10-12 ~]# /bin/bash random_max_min.sh2812518268207363241610373668940951845644511489----------------------- max is32416, min is1489六、使用递归调用完成阶乘算法实现。#!/bin/bash# *********************************# * 功能Sehll 脚本模板# * 作者王波# * 联系wangboqq.com# * 版本2026-04-26# *********************************factorial(){# 加上local后 每次调用都有独立的 n通过local语法将变量的作用范围限制在一段代码块范围中。localn$1# 基线条件0! 1, 1! 1if[$n-le1];thenecho1else# 递归条件n! n * (n-1)!localsub$((n-1))localsub_result$(factorial $sub)echo$((n*sub_result))fi}# 读取read-p请输入一个非负整数numif[$num-lt0];thenecho错误阶乘只适用于非负整数exit1firesult$(factorial $num)echo${num}! ${result}结果[rootRocky10-12 ~]# /bin/bash factorial.sh请输入一个非负整数66!720七、总结主机到主机的包传递过程。发送方判断是否在同一网段用自己的子网掩码与目标IP做逻辑与运算得到目标网络号再与自己IP和自己的掩码运算得到自己的网络号。若两者相等则在同一网段否则在不同网段。获取下一跳MAC地址若在同一网段目标MAC就是目标主机的MAC发送ARP广播请求目标IP对应的MAC。若在不同网段目标MAC是默认网关的MAC发送ARP请求网关IP的MAC。封装数据帧源MAC为本机目标MAC为下一跳目标主机或网关的MACIP头中源IP和目标IP保持不变。数据从应用层开始依次封装段头、包头、帧头链路层发送将帧发送到物理链路。中间路由器处理路由器收到帧检查目标MAC是否为自己接收接口的MAC是则接收否则丢弃。解封出IP包根据目标IP查找路由表决定出接口和下一跳IP。下一跳IP的MAC通过ARP获取若不在ARP缓存中。重新封装源MAC改为出接口的MAC目标MAC改为下一跳的MACIP头不变。最终到达目标主机目标主机收到帧检查目标MAC为自己解封IP包。检查目标IP为自己将数据交给上层协议如TCP/UDP。八、总结IP地址 A, B, C, D 类,并解析IP地址的组成IP地址的基本组成IP地址由32位二进制组成通常用点分十进制表示IPv4地址 网络位 主机位192.168.1.111000000.10101000.00000001.00000001每个分割的段 8位二进制0-255IP地址分类类别首位bit网络位长度主机位长度地址范围默认子网掩码用途A类08位24位0.0.0.0 - 127.255.255.255255.0.0.0超大型网络B类1016位16位128.0.0.0 - 191.255.255.255255.255.0.0中型网络C类11024位8位192.0.0.0 - 223.255.255.255255.255.255.0小型网络D类1110无无224.0.0.0 - 239.255.255.255无组播地址E类1111无无240.0.0.0 - 255.255.255.255无科研保留九、201.222.200.111/18计算主机数子网掩码说明计算方法可用主机数 2^14 - 2 16384 - 2 16382子网掩码/18 表示前18位为1后14位为0。点分十进制为255.255.192.0十、当A(10.0.1.1/16)与B(10.0.2.2/24)通信A如何判断是否在同一个网段A和B能否通信每台主机都用自己的子网掩码来判断目标是否在同一网段目标网络号 目标IP 自己的子网掩码自己网络号 自己IP 自己的子网掩码如果 目标网络号 自己网络号 → 同一网段直接通信如果 不相等 → 不同网段走网关B的IP10.0.2.2 00001010.00000000.00000010.00000010 (10.0.2.2)A的掩码255.255.0.0 11111111. 11111111. 00000000.00000000 (255.255.0.0)B的网络号00001010.00000000.00000000.00000000 → 10.0.0.0B的网络号从A视角00001010.00000000.00000000.00000000 10.0.0.0A 认为 B 的网络号也是 10.0.0.0/16。A的网络号也是通过根据自己的IP和掩码用逻辑与演算出来的。由此A认为B和自己是在一个网段。A和B不能直接双向通信B不认为A和自己同网段。B 用自己掩码 /24 计算10.0.1.1 255.255.255.0 10.0.1.0/24B 自己的网络号是 10.0.2.0/24B 不会直接发 ARP 给 A而是将包发给默认网关.配置了网关就可以通信如果没有配置就没有返程。十一、 如何将10.0.0.0/8划分32个子网求每个子网的掩码主机数。将 10.0.0.0/8 划分为 32 个子网需要从主机位借用 5 位因为 2^5 32。借 n 位子网数量 2^n借后的子网的主机数和掩码掩码85/13即 255.248.0.0主机数量2^(32-13)-2524286

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2558822.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…