######################################################################################## # File Name: system_monitor.sh ######################################################################################## #!/bin/bash clear if [[ $# -eq 0 ]] then #define variable reset_terminal reset_terminal=$(tput sgr0) #check OS type os=$(uname -o) echo -e '\E[32m' "os type:"$reset_terminal $os #check OS release version and name os_name=$(cat /etc/issue | grep -e "Server") echo -e '\E[32m' "os release version and name:"$reset_terminal $os_name #check architecture architecture=$(uname -m) echo -e '\E[32m' "architecture:"$reset_terminal $architecture #check kernel release kernelrelease=$(uname -r) echo -e '\E[32m' "kernel release:"$reset_terminal $kernelrelease #check hostname hostname=$(hostname) echo -e '\E[32m' "hostname:"$reset_terminal $hostname #check internal ip internalip=$(hostname -i) echo -e '\E[32m' "internal ip:"$reset_terminal $internalip #check external ip externalip=$(curl -shttp://ipecho.net/plain) echo -e '\E[32m' "external ip:"$reset_terminal $externalip #check dns dns=$(cat /etc/resolv.conf | grep -E "\<nameserver[ ]+" | cut -d " " -f2) echo -e '\E[32m' "dns:"$reset_terminal $dns #check if connected to internet or not ping -c 2 baidu.com >> /dev/null && echo "Internal:Connected" || echo "Internal:Disconnected" #check logged in users who > /tmp/who echo -e '\E[32m' "logged in users:"$reset_terminal && cat /tmp/who rm -rf /tmp/who fi #system use 系統使用內存 systemUserage=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024}' /proc/meminfo) echo -e '\E[32m' "systemUserage:"$reset_terminal $systemUserage'M' #application usr 應用使用內存 applicationUserage=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}/^Cached/{cache=$2}/Buffers/{buffer=$2}END{print (total-free-cache-buffer)/1024}' /proc/meminfo) echo -e '\E[32m' "applicationUserage:"$reset_terminal $applicationUserage'M' #load average 操作系統負載 loadaverage=$(top -n 1 -b | grep 'load average' | awk '{print $11 $12 $13}') echo -e '\E[32m' "loadaverage:"$reset_terminal $loadaverage #磁盤使用率 dfused=$(df -hP | grep -vE 'Filesystem|tmpfs' | awk '{print $1" "$5}') echo -e '\E[32m' "dfused:"$reset_terminal $dfused