当前位置: 首页 > news >正文

从零开始的云计算生活——番外,实战脚本。

目录

题目一:系统信息收集脚本

题目二:用户管理配置脚本

题目三:磁盘空间管理脚本

题目四:网络配置检查脚本

题目五:系统日志分析脚本


题目一:系统信息收集脚本

编写一个脚本名为 collect_system_info.sh,实现以下功能:

  1. 收集系统的基本信息,包括但不限于操作系统版本、内核版本、主机名,并将这些信息输出到一个名为 system_info.txt 的文件中,每个信息占一行,并加上清晰的说明标签。

  2. 统计当前系统中正在运行的进程数量,并将结果追加到 system_info.txt 文件中,格式为“正在运行的进程数量:[具体数量]”。

  3. 使用合适的命令查找系统中占用 CPU 资源最多的前 5 个进程(如果系统有相关命令支持的话),并将它们的进程 ID 和进程名称输出到 system_info.txt 文件中,格式为“占用 CPU 多的进程:进程 ID - 进程名称”,每个进程占一行。如果系统无法直接找出前 5 个,可根据实际情况尽可能多地找出占用高的进程展示。

题目二:用户管理配置脚本

创建一个脚本名为 user_config.sh,完成以下任务:

  1. 接受一个用户名为参数,如果该用户不存在,则创建这个用户,并设置一个随机生成的 8 位包含大小写字母和数字的密码(可借助相关命令或工具实现随机密码生成)。将用户信息(用户名和密码)追加到一个名为 users.txt 的文件中,格式为“用户名:密码”。

  2. 为新创建的用户添加一个备注信息,备注信息内容为“新创建用户于[当前日期]”,使用 chfn 命令实现(如果系统支持)。如果系统没有 chfn 命令,可将备注信息以一种合适的方式记录下来,比如在 users.txt 文件中用户名对应行的末尾添加备注。

  3. 将该用户添加到一个名为 common_group 的用户组中(如果该用户组不存在,则先创建它)。

题目三:磁盘空间管理脚本

编写一个脚本名为 disk_management.sh,执行以下操作:

  1. 查找系统中磁盘空间使用率超过 80%的分区,将这些分区的挂载点和使用率信息输出到一个名为 disk_usage_report.txt 文件中,格式为“挂载点:使用率%”,每个分区占一行。

  2. 对于使用率超过 90%的分区,找出其中占用空间最大的前 10 个目录(如果可以通过命令直接实现的话,可使用合适的命令和参数),并将它们的路径和占用空间大小(以合适的单位显示,如 MB 或 GB)输出到一个名为 large_directories.txt 文件中,格式为“目录路径:占用空间大小”,每个目录占一行。如果无法直接找出前 10 个,尽可能多地找出大目录展示。

  3. 创建一个 cron 任务(如果系统支持 cron),让这个脚本每天凌晨 3 点自动执行一次,以持续监测磁盘空间情况。

题目四:网络配置检查脚本

创建一个脚本名为 network_check.sh,实现以下功能:

  1. 检查系统的网络连接状态,判断是否能够正常访问互联网(可以尝试访问一个知名的、稳定的外网地址,如谷歌的公共 DNS 服务器 8.8.8.8),如果能访问则输出“网络连接正常”,否则输出“网络连接故障”。

  2. 列出当前系统中所有的网络接口及其 IP 地址,并将结果输出到一个名为 network_info.txt 文件中,格式为“网络接口:IP 地址”,每个接口占一行。

  3. 检查系统的防火墙规则(如果系统有防火墙),将当前启用的防火墙规则列表输出到一个名为 firewall_rules.txt 文件中。如果系统没有防火墙或者无法直接获取规则列表,可以输出“无防火墙或无法获取规则信息”到该文件中。

题目五:系统日志分析脚本

编写一个脚本名为 log_analysis.sh,完成以下任务:

  1. 分析系统的一个关键应用程序的日志文件(假设日志文件路径为 /var/log/dnf.log),统计该日志文件中在过去 24 小时内出现错误信息(假设错误信息有特定的关键字,如 ERROR)的次数,并将结果输出到一个名为 error_count.txt 文件中,内容仅包含错误次数的数字。

  2. 找出包含错误信息的日志行中,出现频率最高的前 3 个错误消息内容(如果有多行错误信息内容相同,则视为同一类错误),并将它们及其出现次数输出到一个名为 top_errors.txt 文件中,格式为“错误消息:出现次数”,每个错误消息占一行。

  3. 将所有包含错误信息的日志行提取出来,保存到一个新的文件名为 errors.log 的文件中。

相关文章:

  • OpenEuler服务器警告邮件自动化发送:原理、配置与安全实践
  • ElGamal加密算法:离散对数难题的安全基石
  • 【大模型】【推荐系统】LLM在推荐系统中的应用价值
  • Linux nano命令的基本使用
  • Java安全点safepoint
  • Fractal Generative Models论文阅读笔记与代码分析
  • C# 表达式和运算符(表达式和字面量)
  • Go基本语法——go语言中的四种变量定义方法
  • Vscode下Go语言环境配置
  • RoboDK 自定义机器人
  • 指针作为函数返回值的使用及注意事项详解(附代码示例)
  • [论文阅读] 人工智能+软件工程(软件测试) | 当大语言模型遇上APP测试:SCENGEN如何让手机应用更靠谱
  • LLMs之PE:system-prompts-and-models-of-ai-tools的简介、使用方法、案例应用之详细攻略
  • 嵌入式面试常问问题
  • 论文笔记:Large Language Models for Next Point-of-Interest Recommendation
  • 零基础入门 C 语言基础知识(含面试题):结构体、联合体、枚举、链表、环形队列、指针全解析!
  • 【论文阅读30】Bi-LSTM(2024)
  • 在MobaXterm 打开图形工具firefox
  • 【论文阅读28】-CNN-BiLSTM-Attention-(2024)
  • (六)卷积神经网络:深度学习在计算机视觉中的应用
  • 哪个网站可以找到毕业设计/友情链接百科
  • 做易拉宝的素材网站/windows优化大师免费
  • 紫阳县城乡建设局官方网站/关键词快速排名怎么做
  • 微信公众号菜单跳转的网页怎么制作/搜索seo
  • 网站空间流量6g/网络推广员好做吗
  • 外贸网站怎样做推广/今日国际新闻事件