一、自動檢查腳本每次登錄linux都想看一下系統(tǒng)的一些信息以及cpu和內(nèi)存,但是不想手敲。整理了一份登錄檢查清單腳本,涵蓋了系統(tǒng)的基礎(chǔ)信息、內(nèi)存、cpu、網(wǎng)絡(luò)、docker等等的信息。只需要在/etc/profile....
一、自動檢查腳本
每次登錄linux都想看一下系統(tǒng)的一些信息以及cpu和內(nèi)存,但是不想手敲。整理了一份登錄檢查清單腳本,涵蓋了系統(tǒng)的基礎(chǔ)信息、內(nèi)存、cpu、網(wǎng)絡(luò)、docker等等的信息。
只需要在/etc/profile.d/創(chuàng)建這個腳本,粘貼下面的腳本內(nèi)容;
vim /etc/profile.d/autosearchinfo.sh
然后賦予腳本的執(zhí)行權(quán)限即可。每次登錄就可以自動檢查信息了。
chmod +x /etc/profile.d/autosearchinfo.sh
ps:內(nèi)存使用率是使用bc命令計算的,bc命令先裝。
二、腳本測試環(huán)境
1.測試環(huán)境信息
A.項目映射在華為云centos8.2,外網(wǎng)地址為124.71.67.131,實際搭建在我的minipc,通過內(nèi)網(wǎng)穿透映射到華為云進行訪問
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
注意:本次實踐部署環(huán)境為個人的測試環(huán)境,若是生產(chǎn)環(huán)境請謹慎部署;對應(yīng)開啟了容器的端口,在linux下和防火墻下需開放對應(yīng)端口。
2.本次項目實施過程
在/etc/profile.d/路徑下創(chuàng)建autosearchinfo.sh腳本,賦予執(zhí)行權(quán)限。
由于我這邊是一個云服務(wù)器,一個是內(nèi)網(wǎng)穿透的服務(wù)器,我這邊兩邊都增加了對應(yīng)的腳本。
三、腳本內(nèi)容
#!/bin/bash
clear
LogFileName=polling.$(date +%F-%T)
EchoFormat=$(for(( i=0;i<30;i++));do echo -n "=";done)
# 系統(tǒng)信息
SystemInfo(){
printf "${EchoFormat} 系統(tǒng)信息 ${EchoFormat}\n"
printf "系統(tǒng)類型: %-10s\n" $(uname -a| awk '{print $NF}')
printf "系統(tǒng)版本: %-10s\n""$(cat /etc/redhat-release)"
printf "內(nèi)核信息: %-10s\n" $(uname -r)
printf "主機名: %-10s\n" $(uname -n)
printf "編碼格式: %-10s\n" ${LANG}
printf "系統(tǒng)當前時間: %-10s %-10s\n" $(date +%F) $(date +%T)
printf "系統(tǒng)運行負載: %-4s %-1s\n" $(uptime | awk -F:'{print $5 }'|awk -F,'{print $1,"%"}')
printf "系統(tǒng)運行天數(shù): %-10s\n" $(uptime |awk '{print $3}')
printf "在線用戶人數(shù): %-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 "內(nèi)存空間: $(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核數(shù): %-3s\n" $(grep "processor"/proc/cpuinfo|sort -u|wc -l)
printf "物理CPU核數(shù): %-3s\n" $(grep "physical id"/proc/cpuinfo |sort -u|wc -l)
printf "CPU架構(gòu): %-3s\n" $(uname -m)
printf "CPU設(shè)置型號: %-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} 內(nèi)存信息 ${EchoFormat}\n"
printf "總共內(nèi)存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $2}')
printf "使用內(nèi)存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $3}')
printf "剩余內(nèi)存: %-1s\n" $(free -mh|awk "NR==2"|awk '{print $4}')
printf "內(nèi)存使用占比: %-1s %-1s\n" $(free | grep -i mem |awk '{print $6/$2*100}'|cut -c1-5)%
printf "占用內(nèi)存排名前10的soft:\n\n"
ps -eo user,pid,pcpu,pmem,args --sort=-pmem |head -n 10
}
# 磁盤使用量排序:
Disk_Info(){
printf "${EchoFormat} 各分區(qū)使用率 ${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}')
}
# 網(wǎng)絡(luò)信息
NetworkInfo(){
printf "${EchoFormat} 網(wǎng)絡(luò)信息 ${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 "網(wǎng)關(guān): %-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 "網(wǎng)絡(luò)是否連通: %s\n"是
else
printf "網(wǎng)絡(luò)是否連通: %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}
來源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺,并已注明來源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請聯(lián)系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內(nèi)容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號-3技術(shù)支持:南京博盛藍睿網(wǎng)絡(luò)科技有限公司
南京思必達教育科技有限公司版權(quán)所有 百度統(tǒng)計