一、自動檢查腳本每次登錄linux都想看一下系統的一些信息以及cpu和內存,但是不想手敲。整理了一份登錄檢查清單腳本,涵蓋了系統的基礎信息、內存、cpu、網絡、docker等等的信息。只需要在/etc/profile....
一、自動檢查腳本
每次登錄linux都想看一下系統的一些信息以及cpu和內存,但是不想手敲。整理了一份登錄檢查清單腳本,涵蓋了系統的基礎信息、內存、cpu、網絡、docker等等的信息。
只需要在/etc/profile.d/創建這個腳本,粘貼下面的腳本內容;
vim /etc/profile.d/autosearchinfo.sh
然后賦予腳本的執行權限即可。每次登錄就可以自動檢查信息了。
chmod +x /etc/profile.d/autosearchinfo.sh
ps:內存使用率是使用bc命令計算的,bc命令先裝。
二、腳本測試環境
1.測試環境信息
A.項目映射在華為云centos8.2,外網地址為124.71.67.131,實際搭建在我的minipc,通過內網穿透映射到華為云進行訪問
Linux hcss-ecs-031b4.18.0-348.7.1.el8_5.x86_64 #1 SMP Wed Dec 22 13:25:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
B.docker版本為26.1.3,docker-compose版本為26.1.3
注意:本次實踐部署環境為個人的測試環境,若是生產環境請謹慎部署;對應開啟了容器的端口,在linux下和防火墻下需開放對應端口。
2.本次項目實施過程
在/etc/profile.d/路徑下創建autosearchinfo.sh腳本,賦予執行權限。
由于我這邊是一個云服務器,一個是內網穿透的服務器,我這邊兩邊都增加了對應的腳本。
三、腳本內容
#!/bin/bash
clear
LogFileName=polling.$(date +%F-%T)
EchoFormat=$(for(( i=0;i<30;i++));do echo -n "=";done)
# 系統信息
SystemInfo(){
printf "${EchoFormat} 系統信息 ${EchoFormat}\n"
printf "系統類型: %-10s\n" $(uname -a| awk '{print $NF}')
printf "系統版本: %-10s\n""$(cat /etc/redhat-release)"
printf "內核信息: %-10s\n" $(uname -r)
printf "主機名: %-10s\n" $(uname -n)
printf "編碼格式: %-10s\n" ${LANG}
printf "系統當前時間: %-10s %-10s\n" $(date +%F) $(date +%T)
printf "系統運行負載: %-4s %-1s\n" $(uptime | awk -F:'{print $5 }'|awk -F,'{print $1,"%"}')
printf "系統運行天數: %-10s\n" $(uptime |awk '{print $3}')
printf "在線用戶人數: %-3s\n" $(w|tail -n +3|wc -l)
printf "SELinux: %-10s\n" $(grep "SELINUX=[d|e|p]"/etc/selinux/config |awk -F='{print $2}')
echo -e "最后一次修改時間: $(uptime -p)"
echo -e "IP地址: $(hostname -I | cut -d' ' -f1)"
echo -e "Cpu處理器: $(lscpu | grep "Model name:" | sed 's/Model name:\s*//')"
echo -e "內存空間: $(free -h | awk '/^Mem:/ { print $3 "/" $2 }')"
echo -e "交換空間: $(free -h | awk '/^Swap:/ { print $3 "/" $2 }')"
}
# CPU信息
CpuInfo(){
MemonyId=$(top -b -n1|awk 'NR==3'|awk -F,'{print $4}'| cut -c 1-5)
MemonyUse=$(echo "100-${MemonyId}"|bc)
printf "${EchoFormat} CPU信息 ${EchoFormat}\n"
printf "邏輯CPU核數: %-3s\n" $(grep "processor"/proc/cpuinfo|sort -u|wc -l)
printf "物理CPU核數: %-3s\n" $(grep "physical id"/proc/cpuinfo |sort -u|wc -l)
printf "CPU架構: %-3s\n" $(uname -m)
printf "CPU設置型號: %-3s\n""$(grep "model name" /proc/cpuinfo |awk -F: '{print $2}'|sort -u|cut -c 2-50)"
echo -e "CPU 1分鐘負載: `awk '{printf "%15s",$1}' /proc/loadavg`"
echo -e "CPU 5分鐘負載: `awk '{printf "%15s",$2}' /proc/loadavg`"
echo -e "CPU10分鐘負載: `awk '{printf "%15s",$3}' /proc/loadavg`"
printf "使用CPU占比: %-1s %-1s\n" ${MemonyUse}%
printf "空閑CPU占比: %-1s %-1s\n" ${MemonyId}%
printf "占用CPU Top10信息:\n\n"
ps -eo user,pid,pcpu,pmem,args --sort=-pcpu |head -n 10
}
# Memory信息
MemoryInfo(){
printf "${EchoFormat} 內存信息 ${EchoFormat}\n"
printf "總共內存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $2}')
printf "使用內存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $3}')
printf "剩余內存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $4}')
printf "內存使用占比: %-1s %-1s\n" $(free | grep -i mem |awk '{print $6/$2*100}'|cut -c1-5)%
printf "占用內存排名前10的soft:\n\n"
ps -eo user,pid,pcpu,pmem,args --sort=-pmem |head -n 10
}
# 磁盤使用量排序:
Disk_Info(){
printf "${EchoFormat} 各分區使用率 ${EchoFormat}\n"
df -h
echo
}
# Swap信息
SwapInfo(){
printf "${EchoFormat} Swap信息 ${EchoFormat}\n"
printf "Swap總大小: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $2}')
printf "已用Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $3}')
printf "可用Swap: %-1s\n" $(free -mh|awk "NR==3"|awk '{print $4}')
}
# 網絡信息
NetworkInfo(){
printf "${EchoFormat} 網絡信息 ${EchoFormat}\n"
printf "IP地址: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:")
printf "網關: %-1s %-1s %-1s %-1s\n" $(ifconfig -a|grep "netmask"|grep -v 127.0.0.1|awk '{print $4}')
printf "DNS: %-1s %-1s %-1s %-1s %-1s\n" $(grep "nameserver"/etc/resolv.conf | awk '{print $2}')
if(ping -c2 -w2 www.baidu.com &>/dev/null);then
printf "網絡是否連通: %s\n"是
else
printf "網絡是否連通: %s\n"否
fi
}
# docker檢查
DockerInfo(){
printf "${EchoFormat} docker運行情況 ${EchoFormat}\n"
printf "當前正在運行的容器:\n $(docker ps --format "{{.Names}}")\n"
printf "當前沒有運行的容器:\n $(docker ps --format "{{.Names}}"|grep Exited)\n"
}
#直接登錄后打印
SystemInfo
CpuInfo
MemoryInfo
Disk_Info
SwapInfo
NetworkInfo
#登錄后進入查看模式
# All(){
# SystemInfo
# CpuInfo
# MemoryInfo
# Disk_Info
# SwapInfo
# NetworkInfo
# }
# All >${LogFileName};less ${LogFileName}
來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。
Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利
蘇公網安備32010402000125
蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司
南京思必達教育科技有限公司版權所有 百度統計