【网络云计算】2024第52周-每日【2024/12/23】小测-理论实操-解析

news2024/12/24 5:19:02

文章目录

  • 【网络云计算】2024第52周-每日【2024/12/23】小测-理论&实操
    • 1. 与系统管理相关的if控制语句脚本
      • (1)磁盘空间检查脚本
      • (2)进程监控脚本
      • (3)用户登录检查脚本
      • (4)系统负载检查脚本
      • (5)服务端口监听检查脚本
    • 2. 基于eNSP的交换机实验
      • (1)理论拓扑图和实现思路
      • (2)实操录屏和文档实现过程
        • 实操录屏(此处文字描述操作步骤,实际可根据操作过程录制视频):
        • 实操文档:

【网络云计算】2024第52周-每日【2024/12/23】小测-理论&实操

【网络云计算】2024第52周-每日【2024/12/23】小测-理论&实操

1. 与系统管理相关的if控制语句脚本

(1)磁盘空间检查脚本

  • 理论核心思路:通过df -h命令获取磁盘使用情况,检查根分区(/)的使用率是否超过设定阈值(如80%),如果超过则输出警告信息。
  • 实操文档
    • 脚本内容:
#!/bin/bash

# 获取根分区磁盘使用率
usage=$(df -h / | awk 'NR==2{print $5}' | sed's/%//g')

# 判断使用率是否超过80%
if [ $usage -gt 80 ]; then
    echo "根分区磁盘使用率已超过80%,当前使用率为$usage%,请及时清理磁盘空间。"
fi
- 使用方法:将上述脚本保存为`check_disk_space.sh`,赋予执行权限(`chmod +x check_disk_space.sh`),然后在终端运行即可。

(2)进程监控脚本

  • 理论核心思路:使用ps -ef命令查找特定进程(如nginx),如果进程不存在则尝试启动该进程。
  • 实操文档
    • 脚本内容:
#!/bin/bash

# 检查nginx进程是否存在
process_count=$(ps -ef | grep nginx | grep -v grep | wc -l)

if [ $process_count -eq 0 ]; then
    echo "nginx进程未运行,尝试启动nginx..."
    systemctl start nginx
    sleep 2
    process_count=$(ps -ef | grep nginx | grep -v grep | wc -l)
    if [ $process_count -eq 0 ]; then
        echo "nginx启动失败,请检查相关配置。"
    else
        echo "nginx已成功启动。"
    fi
else
    echo "nginx进程正在运行。"
fi
- 使用方法:将脚本保存为`monitor_nginx_process.sh`,赋予执行权限后运行。

(3)用户登录检查脚本

  • 理论核心思路:检查/var/log/secure日志文件中是否有新的用户登录失败记录(根据特定错误信息判断),如果有则发送邮件通知管理员。
  • 实操文档
    • 脚本内容:
#!/bin/bash

# 检查登录失败记录
failed_login=$(grep "Failed password" /var/log/secure | tail -n 1)

if [ -n "$failed_login" ]; then
    echo "检测到新的用户登录失败记录:$failed_login"
    echo "登录失败记录:$failed_login" | mail -s "用户登录失败通知" admin@example.com
fi
- 使用方法:将脚本保存为`check_login_failures.sh`,赋予执行权限后运行(需确保服务器已配置邮件发送功能,且`admin@example.com`为管理员邮箱地址)。

(4)系统负载检查脚本

  • 理论核心思路:通过uptime命令获取系统1分钟、5分钟和15分钟的平均负载,判断是否超过设定阈值(如1分钟负载超过2),如果超过则输出警告信息。
  • 实操文档
    • 脚本内容:
#!/bin/bash

# 获取系统负载
load=$(uptime | awk '{print $10,$11,$12}' | sed's/,//g')
one_minute_load=$(echo $load | awk '{print $1}')

# 判断1分钟负载是否超过阈值
if [ $(echo "$one_minute_load > 2" | bc) -eq 1 ]; then
    echo "系统1分钟平均负载过高,当前负载为$load,请检查系统资源使用情况。"
fi
- 使用方法:将脚本保存为`check_system_load.sh`,赋予执行权限后运行。

(5)服务端口监听检查脚本

  • 理论核心思路:使用netstat -tln命令检查特定服务端口(如8080)是否在监听状态,如果未监听则尝试启动相关服务(假设服务启动命令为./start_service.sh)。
  • 实操文档
    • 脚本内容:
#!/bin/bash

# 检查8080端口是否监听
port_listening=$(netstat -tln | grep 8080 | wc -l)

if [ $port_listening -eq 0 ]; then
    echo "8080端口未监听,尝试启动服务..."
   ./start_service.sh
    sleep 5
    port_listening=$(netstat -tln | grep 8080 | wc -l)
    if [ $port_listening -eq 0 ]; then
        echo "服务启动失败,8080端口仍未监听,请检查服务配置。"
    else
        echo "服务已成功启动,8080端口正在监听。"
    fi
else
    echo "8080端口正在监听。"
fi
- 使用方法:将脚本保存为`check_port_listening.sh`,赋予执行权限后运行(需根据实际情况修改`start_service.sh`为正确的服务启动脚本路径和名称)。

2. 基于eNSP的交换机实验

(1)理论拓扑图和实现思路

  • 拓扑图
         +----------+
         |  PC1     |
         | 192.168.1.2/24 |
         +----------+
               |
               |
    +----------+----------+
    | Switch1            |
    | VLAN10: 192.168.1.1/24 |
    | VLAN20: 192.168.2.1/24 |
    +----------+----------+
               |
               |
         +----------+
         |  PC2     |
         | 192.168.2.2/24 |
         +----------+
  • 实现思路
    • 在eNSP中创建一台交换机(Switch1)和两台PC(PC1和PC2),并按照拓扑图连接。
    • 配置Switch1的VLAN,创建VLAN10和VLAN20。
    • 将连接PC1的交换机端口划分到VLAN10,将连接PC2的交换机端口划分到VLAN20。
    • 配置VLAN10和VLAN20的接口IP地址,分别为192.168.1.1/24和192.168.2.1/24。
    • 配置PC1和PC2的IP地址、子网掩码和网关,使其能与对应VLAN的交换机接口通信。
    • 测试PC1和PC2之间的连通性,验证VLAN配置是否成功。

(2)实操录屏和文档实现过程

实操录屏(此处文字描述操作步骤,实际可根据操作过程录制视频):
  1. 打开eNSP软件,新建拓扑,从设备列表中拖出一台交换机(Switch)和两台PC(PC)到工作区。
  2. 使用连线工具将PC1连接到Switch1的端口0/0/1,将PC2连接到Switch1的端口0/0/2。
  3. 配置Switch1:
    • 进入系统视图:system-view
    • 创建VLAN10:vlan 10,然后退出VLAN视图:quit
    • 创建VLAN20:vlan 20,退出VLAN视图。
    • 将端口0/0/1划分到VLAN10:interface GigabitEthernet0/0/1port link-type accessport default vlan 10
    • 将端口0/0/2划分到VLAN20:interface GigabitEthernet0/0/2port link-type accessport default vlan 20
    • 配置VLAN10接口IP地址:interface Vlanif10ip address 192.168.1.1 24
    • 配置VLAN20接口IP地址:interface Vlanif20ip address 192.168.2.1 24
  4. 配置PC1:
    • 打开PC1的配置界面,设置IP地址为192.168.1.2,子网掩码为255.255.255.0,网关为192.168.1.1。
  5. 配置PC2:
    • 打开PC2的配置界面,设置IP地址为192.168.2.2,子网掩码为255.255.255.0,网关为192.168.2.1。
  6. 测试连通性:
    • 在PC1上打开命令提示符,使用ping 192.168.2.2命令测试与PC2的连通性。如果能收到回复,则说明VLAN配置成功,不同VLAN间的通信通过交换机的三层接口实现;如果无法收到回复,则需要检查配置是否正确。
实操文档:
  1. 设备连接
    • 在eNSP工作区中,正确连接Switch1、PC1和PC2,确保物理连接正常。
  2. 交换机配置
    • 进入系统视图后,按上述步骤创建VLAN并划分端口,注意端口类型为access模式,确保端口只能属于一个VLAN。
    • 配置VLAN接口IP地址时,确保地址与拓扑图中规划一致,且子网掩码正确。
  3. PC配置
    • 仔细设置PC1和PC2的IP地址、子网掩码和网关,保证与所在VLAN的交换机接口在同一网段。
  4. 连通性测试
    • 在PC1上执行ping命令时,观察返回结果。如果出现“请求超时”等错误信息,需要逐步排查交换机配置、PC配置以及网络连接等方面可能存在的问题。例如,检查VLAN划分是否正确、IP地址是否冲突、网关是否可达等。如果ping通,说明实验配置成功,实现了不同VLAN间通过交换机三层接口的通信。

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

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

相关文章

【java面向对象编程】第九弹----抽象类、接口、内部类

笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:javase 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 一、抽象类 1.1基本介绍 &…

Qt笔记:网络编程UDP

一、铺垫 1.Qt框架使用的网络结构的基础就是Linux学习的网络编程基础;所以使用Qt写客户端,使用Linux写服务端;两者是可以实现互联的 二、UDP 网络编程UDP使用套路: 1.首先在.pro文件中加上network,使Qt可以搭载网络…

Redis存在安全漏洞

Redis是美国Redis公司的一套开源的使用ANSI C编写、支持网络、可基于内存亦可持久化的日志型、键值(Key-Value)存储数据库,并提供多种语言的API。 Redis存在安全漏洞。攻击者利用该漏洞使用特制的Lua脚本触发堆栈缓冲区溢出漏洞,从…

【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题

目录 背包问题简介 问题描述 输入: 输出: 动态规划解法 动态规划状态转移 代码实现 代码解释 动态规划的时间复杂度 例子解析 输出: 总结 作者我蓝桥杯:2023第十四届蓝桥杯国赛C/C大学B组一等奖,所以请听我…

ReactPress 1.6.0:重塑博客体验,引领内容创新

ReactPress 是一个基于Next.js的博客&CMS系统, Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 体验地址:http://blog.gaoredu.com/ 今天,我们自豪地宣布ReactPress 1.6.0版本的正式发布,…

单元测试-Unittest框架实践

文章目录 1.Unittest简介1.1 自动化测试用例编写步骤1.2 相关概念1.3 用例编写规则1.4 断言方法 2.示例2.1 业务代码2.2 编写测试用例2.3 生成报告2.3.1 方法12.3.2 方法2 1.Unittest简介 Unittest是Python自带的单元测试框架,适用于:单元测试、Web自动…

带有 Elasticsearch 和 Langchain 的 Agentic RAG

作者:来自 Elastic Han Xiang Choong 讨论并实现 Elastic RAG 的代理流程,其中 LLM 选择调用 Elastic KB。 更多阅读:Elasticsearch:基于 Langchain 的 Elasticsearch Agent 对文档的搜索。 简介 代理是将 LLM 应用于实际用例的…

[react 3种方法] 获取ant组件ref用ts如何定义?

获取ant的轮播图组件, 我用ts如何定义? Strongly Type useRef with ElementRef | Total TypeScript import React, { ElementRef } from react; const lunboRef useRef<ElementRef<typeof Carousel>>(null); <Carousel autoplay ref{lunboRef}> 这样就…

stm32制作CAN适配器5--WinUsb上位机编写

上次我们要stm32制作了一个基于winusb有canfd适配器&#xff0c;今天我们来制作一个上位机程序来进行报文收发。 上位机还是用以前写好的&#xff0c;只是更改下dll文件。 项目链接器&#xff0c;输入&#xff0c;附加依赖项中增加winusb.lib winusb初始化&#xff1a;#incl…

C/C++圣诞树

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C…

图解HTTP-HTTP报文

参考资料&#xff1a;图解HTTP HTTP报文 用于HTTP协议交互的信息被称为HTTP报文。请求端的HTTP请求报文&#xff0c;响应端&#xff08;服务器端&#xff09;的叫做响应报文。HTTP报文本身是由多行&#xff08;CR LF作为换行符&#xff09;数据行构成的文本。 请求报文及响…

机器学习基础算法 (一)-线性回归

python 环境的配置参考 从零开始&#xff1a;Python 环境搭建与工具配置 线性回归的 Python 实现 线性回归是一种经典的机器学习算法&#xff0c;用于预测连续的目标变量。它假设目标变量和特征之间存在线性关系。本文将详细介绍线性回归的原理、Python 实现、模型评估和调优&…

Java字符串的|分隔符转List实现方案

字符串处理 问题背景代码实现代码优化原因分析实现方案 注意事项异常处理Maven未识别异常 问题背景 在项目组对账流程中&#xff0c;接收对方系统的对账文件&#xff0c;数据以|为分隔符&#xff0c;读取文件内容&#xff0c;分条入库。 代码实现 Java中将字符串转给list&am…

【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS&#xff08;Domain Name System&#xff09;是互联网使用的命名系统&#xff0c;用来把便于人们使用的机器…

LabVIEW与PLC点位控制及OPC通讯

在工业自动化中&#xff0c;PLC通过标准协议&#xff08;如Modbus、Ethernet/IP等&#xff09;与OPC Server进行数据交换&#xff0c;LabVIEW作为上位机通过OPC客户端读取PLC的数据并进行监控、控制与处理。通过这种方式&#xff0c;LabVIEW能够实现与PLC的实时通信&#xff0c…

Restaurants WebAPI(四)——Identity

文章目录 项目地址一、Authentication&#xff08;身份认证&#xff09;1.1 配置环境(解决类库包无法引用)1.2 使用Authentication控制Controller的访问1.3 获取User的Context1.3.1 在Application下创建User文件夹1. 创建User.cs record类封装角色信息2. 创建UserContext.cs提供…

Java-32 深入浅出 Spring - IoC 基础 启动IoC 纯注解方式 SpringConfig web.xml

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

Android Studio创建新项目并引入第三方so外部aar库驱动NFC读写器读写IC卡

本示例使用设备&#xff1a;https://item.taobao.com/item.htm?spma21dvs.23580594.0.0.52de2c1bbW3AUC&ftt&id615391857885 一、打开Android Studio,点击 File> New>New project 菜单&#xff0c;选择 要创建的项目模版&#xff0c;点击 Next 二、输入项目名称…

Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】

竣工测量是建筑项目竣工阶段的一个至关重要的环节&#xff0c;它为建筑工程的质量验收和成果核查提供了核心的参考依据。传统的竣工测量方法&#xff0c;如全站仪测量&#xff0c;主要依赖于现场人工操作&#xff0c;存在一些明显的局限性&#xff0c;例如作业时间长、工作量大…

java开发入门学习五-流程控制

流程控制语句 if&#xff0c; if...else&#xff0c; if..else if..else 与前端相同 略 switch case 与前端不同的是case不能使用表达式&#xff0c;使用表达式会报错 class TestSwitch {public static void main(String[] args) {// switch 表达式只能是特定的数据类型…