目錄
題目一:系統信息收集腳本
題目二:用戶管理配置腳本
題目三:磁盤空間管理腳本
題目四:網絡配置檢查腳本
題目五:系統日志分析腳本
題目一:系統信息收集腳本
編寫一個腳本名為 collect_system_info.sh
,實現以下功能:
-
收集系統的基本信息,包括但不限于操作系統版本、內核版本、主機名,并將這些信息輸出到一個名為
system_info.txt
的文件中,每個信息占一行,并加上清晰的說明標簽。 -
統計當前系統中正在運行的進程數量,并將結果追加到
system_info.txt
文件中,格式為“正在運行的進程數量:[具體數量]”。 -
使用合適的命令查找系統中占用 CPU 資源最多的前 5 個進程(如果系統有相關命令支持的話),并將它們的進程 ID 和進程名稱輸出到
system_info.txt
文件中,格式為“占用 CPU 多的進程:進程 ID - 進程名稱”,每個進程占一行。如果系統無法直接找出前 5 個,可根據實際情況盡可能多地找出占用高的進程展示。
題目二:用戶管理配置腳本
創建一個腳本名為 user_config.sh
,完成以下任務:
-
接受一個用戶名為參數,如果該用戶不存在,則創建這個用戶,并設置一個隨機生成的 8 位包含大小寫字母和數字的密碼(可借助相關命令或工具實現隨機密碼生成)。將用戶信息(用戶名和密碼)追加到一個名為
users.txt
的文件中,格式為“用戶名:密碼”。 -
為新創建的用戶添加一個備注信息,備注信息內容為“新創建用戶于[當前日期]”,使用
chfn
命令實現(如果系統支持)。如果系統沒有chfn
命令,可將備注信息以一種合適的方式記錄下來,比如在users.txt
文件中用戶名對應行的末尾添加備注。 -
將該用戶添加到一個名為
common_group
的用戶組中(如果該用戶組不存在,則先創建它)。
題目三:磁盤空間管理腳本
編寫一個腳本名為 disk_management.sh
,執行以下操作:
-
查找系統中磁盤空間使用率超過 80%的分區,將這些分區的掛載點和使用率信息輸出到一個名為
disk_usage_report.txt
文件中,格式為“掛載點:使用率%”,每個分區占一行。 -
對于使用率超過 90%的分區,找出其中占用空間最大的前 10 個目錄(如果可以通過命令直接實現的話,可使用合適的命令和參數),并將它們的路徑和占用空間大小(以合適的單位顯示,如 MB 或 GB)輸出到一個名為
large_directories.txt
文件中,格式為“目錄路徑:占用空間大小”,每個目錄占一行。如果無法直接找出前 10 個,盡可能多地找出大目錄展示。 -
創建一個 cron 任務(如果系統支持 cron),讓這個腳本每天凌晨 3 點自動執行一次,以持續監測磁盤空間情況。
題目四:網絡配置檢查腳本
創建一個腳本名為 network_check.sh
,實現以下功能:
-
檢查系統的網絡連接狀態,判斷是否能夠正常訪問互聯網(可以嘗試訪問一個知名的、穩定的外網地址,如谷歌的公共 DNS 服務器 8.8.8.8),如果能訪問則輸出“網絡連接正常”,否則輸出“網絡連接故障”。
-
列出當前系統中所有的網絡接口及其 IP 地址,并將結果輸出到一個名為
network_info.txt
文件中,格式為“網絡接口:IP 地址”,每個接口占一行。 -
檢查系統的防火墻規則(如果系統有防火墻),將當前啟用的防火墻規則列表輸出到一個名為
firewall_rules.txt
文件中。如果系統沒有防火墻或者無法直接獲取規則列表,可以輸出“無防火墻或無法獲取規則信息”到該文件中。
題目五:系統日志分析腳本
編寫一個腳本名為 log_analysis.sh
,完成以下任務:
-
分析系統的一個關鍵應用程序的日志文件(假設日志文件路徑為
/var/log/dnf.log
),統計該日志文件中在過去 24 小時內出現錯誤信息(假設錯誤信息有特定的關鍵字,如 ERROR)的次數,并將結果輸出到一個名為error_count.txt
文件中,內容僅包含錯誤次數的數字。 -
找出包含錯誤信息的日志行中,出現頻率最高的前 3 個錯誤消息內容(如果有多行錯誤信息內容相同,則視為同一類錯誤),并將它們及其出現次數輸出到一個名為
top_errors.txt
文件中,格式為“錯誤消息:出現次數”,每個錯誤消息占一行。 -
將所有包含錯誤信息的日志行提取出來,保存到一個新的文件名為
errors.log
的文件中。