運維小妙招:如何讓系統(tǒng)信息隨登錄自動展現(xiàn)?
在日常運維工作中,及時獲取系統(tǒng)的基本信息對于維護系統(tǒng)的穩(wěn)定性和安全性至關(guān)重要。通過一個簡單的登錄腳本,我們可以在用戶每次登錄時自動顯示系統(tǒng)的關(guān)鍵信息,這不僅提高了工作效率,還能快速定位問題。本文將介紹如何編寫這樣一個實用的小腳本,并詳細解釋其功能和實現(xiàn)方法。
腳本功能
該腳本主要實現(xiàn)以下功能:
- 顯示系統(tǒng)基本信息:包括主機名、操作系統(tǒng)版本、內(nèi)核版本等。
- 顯示硬件信息:如CPU型號、內(nèi)存使用情況等。
- 顯示磁盤使用情況:各個掛載點的使用率。
- 顯示網(wǎng)絡(luò)信息:如IP地址、網(wǎng)絡(luò)接口狀態(tài)等。
- 顯示當前系統(tǒng)負載:CPU負載和平均負載。
腳本實現(xiàn)
1. 編寫腳本
以下是一個示例腳本,名為system_info.sh:
#!/bin/bash
# 定義顏色
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m' # 沒有顏色
# 獲取IP地址和主機名
IP_ADDR=$(hostname -I | cut -d' ' -f1)
HOSTNAME=$(hostname)
# CPU負載信息:
cpu_load() {
echo -e "${CYAN}\t\t\tCPU的負載情況${NC}"
echo -e "\t------------------------------------------------"
echo -e "\tCPU load in 1 min is: ${YELLOW}`awk '{printf "%15s",$1}' /proc/loadavg`${NC}"
echo -e "\tCPU load in 5 min is: ${YELLOW}`awk '{printf "%15s",$2}' /proc/loadavg`${NC}"
echo -e "\tCPU load in 10 min is: ${YELLOW}`awk '{printf "%15s",$3}' /proc/loadavg`${NC}"
echo
}
# 內(nèi)存基本信息:
memory_info() {
echo -e "${CYAN}\t\t\t內(nèi)存的使用情況${NC}"
echo -e "\t------------------------------------------------"
echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","內(nèi)存總?cè)萘?",$2}'`${NC}"
echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","內(nèi)存空閑容量:",$4}'`${NC}"
echo -e "\t${GREEN}`free -h | awk '/Mem/{printf "%-10s %s","內(nèi)存緩存:",$6}'`${NC}"
echo
}
# 磁盤使用量排序:
disk_rank() {
echo -e "${CYAN}\t\t\t各分區(qū)使用率${NC}"
echo -e "\t------------------------------------------------"
df -h -x tmpfs -x devtmpfs | sort -nr -k 5 | awk '/dev/{printf "\t%-20s %10s\n", $1, $5}'
echo
}
# 顯示系統(tǒng)信息
echo
echo -e "${CYAN}\t\t\t系統(tǒng)基本信息:${NC}"
echo -e "\t------------------------------------------------"
echo -e "\tCurrent Time : ${GREEN}$(date)${NC}"
echo -e "\tVersion : ${GREEN}$(cat /etc/os-release | grep -w "PRETTY_NAME" | cut -d= -f2 | tr -d '"')${NC}"
echo -e "\tKernel : ${GREEN}$(uname -r)${NC}"
echo -e "\tUptime : ${GREEN}$(uptime -p)${NC}"
echo -e "\tIP addr : ${GREEN}$IP_ADDR${NC}"
echo -e "\tHostname : ${GREEN}$HOSTNAME${NC}"
echo -e "\tCpu : ${GREEN}$(lscpu | grep "Model name:" | sed 's/Model name:\s*//')${NC}"
echo -e "\tMemory : ${GREEN}$(free -h | awk '/^Mem:/ { print $3 "/" $2 }')${NC}"
echo -e "\tSWAP : ${GREEN}$(free -h | awk '/^Swap:/ { print $3 "/" $2 }')${NC}"
echo -e "\tUsers Logged : ${GREEN}$(who | wc -l) users${NC}"
echo
cpu_load
memory_info
disk_rank
2. 設(shè)置腳本為登錄時自動執(zhí)行
將腳本放置在用戶主目錄下,例如~/system_info.sh,然后修改.bashrc文件,使其在每次登錄時自動執(zhí)行該腳本:
echo "~/system_info.sh" >> ~/.bashrc
解釋腳本內(nèi)容
(1) 獲取系統(tǒng)基本信息
通過hostname命令獲取主機名,lsb_release -d命令獲取操作系統(tǒng)版本,uname -r獲取內(nèi)核版本。
(2) 獲取硬件信息
使用lscpu命令提取CPU信息,通過free -h獲取內(nèi)存使用情況。
(3) 獲取磁盤使用情況
使用df -h命令顯示各個掛載點的磁盤使用率。
(4) 獲取網(wǎng)絡(luò)信息
通過hostname -I獲取IP地址,ip -o -4 addr show列出所有網(wǎng)絡(luò)接口及其對應(yīng)的IP地址。
(5) 獲取系統(tǒng)負載
使用uptime命令提取系統(tǒng)負載平均值。
總結(jié)
通過以上步驟,我們實現(xiàn)了一個登錄即顯示系統(tǒng)信息的運維小腳本。這個腳本可以幫助運維人員在登錄時快速了解系統(tǒng)的基本狀態(tài),從而更加高效地進行系統(tǒng)維護和故障排除。希望本文對大家有所幫助,也歡迎大家根據(jù)實際需求對腳本進行改進和擴展。