Linux系统监控shell脚本代码如下,实现了Linux系统的一些常见的监控变量,分享给大家。
#=============================#
#Filename=system_monitor.sh
#Author:foxsir
#Date:2016-02-15
#=============================#
#!/bin/sh
clear
if [[ $# -eq 0 ]]
then
#Define Variable Reset_terminal
Reset_terminal=$(tput sgr0)
#Check OS Type
OS=$(uname -o)
echo -e '\E[36m' "Operating System Type :" $Reset_terminal $OS
#Check OS Realease Version And Name
OS_name=$(cat /etc/issue | grep "Server")
echo -e '\E[36m' "Operating System Realease Version :" $Reset_terminal $OS_name
#Check Architecture
Architecture=$(uname -m)
echo -e '\E[36m' "Operating System Architecture :" $Reset_terminal $Architecture
#Check Kernel Realease
Kernel_Realease=$(uname -r)
echo -e '\E[36m' "Operating System Kernel Realease :" $Reset_terminal $Kernel_Realease
#Check Hostname
Hostname=$(hostname)
echo -e '\E[36m' "Operating System Hostname :" $Reset_terminal $Hostname
#Check Internal IP
Internal_IP=$(hostname -I)
echo -e '\E[36m' "Operating System Internal IP :" $Reset_terminal $Internal_IP
#Check External IP
External_IP=$(curl -s )
echo -e '\E[36m' "Operating System External IP :" $Reset_terminal $External_IP
#Check DNS
DNS=$(cat /etc/resolv.conf | grep "/<nameserver[ ]+"|awk '{print $NF}')
echo -e '\E[36m' "Operating System DNS :" $Reset_terminal $DNS
#Check if connected To Internet Or Not
ping -c2 &>/dev/null && echo -e '\E[36m' "Internet : Connected" || echo '\E[36m' "Internet : Failed"
#Check Logged In Users
who > /tmp/who
echo -e '\E[36m' "Operating System Lgged In Users :" $Reset_terminal && cat /tmp/who
rm -f /tmp/who
#Check OS Memory Userages
echo -e '\E[36m' "Operating System Memory Userages :" $Reset_terminal $(cat /proc/meminfo | awk '/^MemTotal/{MemTotal=$2}/^MemFree/{MemFree=$2}END {print (MemTotal-MemFree)/1024,"M"}')
#Check App Memory Userages
echo -e '\E[36m' "App Memory Userages :" $Reset_terminal $(cat /proc/meminfo | awk '/^MemTotal/{MemTotal=$2}/^MemFree/{MemFree=$2}/^Buffers/{Buffers=$2}/^Cached/{Cached=$2}END {print (MemTotal-MemFree-Buffers-Cached)/1024,"M"}')
#Check OS Loadaverage
echo -e '\E[36m' "Operating System Loadaverage :" $Reset_terminal $(top -n1b | grep "load average" | awk '{print $(NF-2) $(NF-1) $NF}')
#Check OS Diskaverage
echo -e '\E[36m' "Operating System Diskaverage :" $Reset_terminal $(df -hP | grep -vE "%%|tmpfs" | awk '{print $1,$5}')
#Check OS Runtime
echo -e '\E[36m' "Operating System Runtime :" $Reset_terminal $(top -n1b | grep "load average" | awk -F"[ ,]+" '{print $5}')
fi