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

目录

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

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

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

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

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


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

编写一个脚本名为 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 的文件中。

相关推荐
Britz_Kevin10 天前
从零开始的云计算生活——第十一天,知识延续,程序管理。
云计算·#linux·#程序管理
Britz_Kevin10 天前
从零开始的云计算生活——第十四天,困难重重,安全管理。
计算机网络·安全·云计算·#linux·#安全管理·#防火墙