Bashスクリプト現在のシステム実行レポートを表示
4754 ワード
次のスクリプトは私が前にbashスクリプトを勉強したとき、ある本から見て、とてもいいと思ったので、みんなと分かち合いに来ました.ほほほ.他はあまり言わないで、コードを見てください.
これで、スクリプトが完了したら、実行して、結果を見てみましょう.
#!/bin/bash
def_colors () {
# Attributes
normal='\033[0m';bold='\033[1m';dim='\033[2m';under='\033[4m'
italic='033[3m'; notalic='\033[23m'; blink='\033[5m';
reverse='\033[7m'; conceal='\033[8m'; nobold='\033[22m';
nounder='\033[24m'; noblink='\033[25m'
# Foreground
black='\033[30m'; red='\033[31m'; green='\033[32m'; yellow='\033[33m'
blue='\033[34m'; magenta='\033[35m'; cyan='\033[36m'; white='\033[37m'
# Background
bblack='\033[40m'; bred='\033[41m'
bgreen='\033[42m'; byellow='\033[43m'
bblue='\033[44m'; bmagenta='\033[45m'
bcyan='\033[46m'; bwhite='\033[47m'
}
def_colors
clear
hostname=`cat /proc/sys/kernel/hostname`
echo
echo -e "System Report for $white$hostname$normal on `date`"
echo
prcessor=`grep 'model name' /proc/cpuinfo | cut -d: -f2 | cut -c2-`
nisdomain=`cat /proc/sys/kernel/domainname`
cache=`grep 'cache size' /proc/cpuinfo | awk '{print $4,$5}'`
bogomips=`grep 'bogomips' /proc/cpuinfo | awk '{print $3}'`
vendor=`grep 'vendor_id' /proc/cpuinfo`
echo -e "Hostname: $white$hostname$normal NIS Domain: $white$nisdomain$normal"
if [ "`echo $vedner | grep -i intel`" ]
then
cpu_color=$blue
elif [ "`echo $vender | grep -i amd`" ]
then
cpu_color=$green
fi
echo -e "Processor: $cpu_color$processor$normal"
echo -e "Running at $white$bogomips$normal bogomips with \
$white$cache$normal cache"
echo
ostype=`cat /proc/sys/kernel/ostype`
osrelease=`cat /proc/sys/kernel/osrelease`
rev=`cat /proc/sys/kernel/version | awk '{print $1}'`
da_date=`cat /proc/sys/kernel/version | cut -d\ -f2-`
upsec=`awk '{print $1}' /proc/uptime`
uptime=`echo "scale=2;$upsec/86400" | bc`
echo -e "OS Type: $white$ostype$normal"
echo -e "Kernel: $white$osrelease$normal"
echo -e "Kernel Compile $white$rev$normal on $white$da_date$normal"
echo -e "Uptime: $magenta$uptime$normal days"
set `grep MemTotal /proc/meminfo`
tot_mem=$2; tot_mem_unit=$3
set 'grep MemFree /proc/meminfo'
free_mem=$2; fre_mem_unit=$3
perc_mem_used=$((100-(100*free_mem/tot_mem)))
set `grep SwapTotal /proc/meminfo`
tot_swap=$2; tot_swap_unit=$3
perc_swap_used=$((100-(100*free_swap/tot_swap)))
if [ $perc_mem_used -lt 80 ]
then
mem_color=$green
elif [ $perc_mem_used -ge 80 -a $perc_mem_used -lt 90 ]
then
mem_color=$yellow
else
mem_color=$red
fi
if [ $perc_swap_used -lt 80 ]
then
swap_color=$green
elif [ $perc_swap_used -ge 80 -a $perc_swap_used -lt 90 ]
then
swap_color=$yellow
else
swap_color=$red
fi
echo -e "Memory: $white$tot_mem$normal $tot_mem_unit Free: $white$free_mem$normal \
$fre_mem_unit $Used: $mem_color$perc_mem_used$normal"
echo -e "Swap: $white$tot_swap$normal $tot_swap_unit Free: $white$free_swap$normal \
$fre_swap_unit $Used: $swap_color$perc_swap_used$normal"
echo
set `cat /proc/loadavg`
one_min=$1
five_min=$2
fifteen_min=$3
echo -n "Load Avderage: "
for ave in $one_min $five_min $fifteen_min
do
int_ave=`echo $ave | cut -d. -f1`
if [ $int_ave -lt 1 ]
then
echo -en "$green$ave$normal "
elif [ $int_ave -ge 1 -a $int_ave -lt 5 ]
then
echo -en "$yellow$ave$normal "
else
echo -en "$red$ave$normal"
fi
done
echo
running=0; sleeping=0; stopped=0; zombie=0
for pid in /proc/[1-9]*
do
procs=$((procs+1))
stat=`awk '{print $3}' $pid/stat`
case $stat in
R) running=$((running+1));;
S) sleeping=$((sleeping+1));;
T) stopped=$((stopped+1));;
Z) zombie=$((zombie+1));;
esac
done
echo -n "Process Count:"
echo -e "$white$process$normal total $white$running$normal running \
$white$sleep$normal sleeping $white$stopped$normal stopped \
$white$zombie$normal zombie"
echo
これで、スクリプトが完了したら、実行して、結果を見てみましょう.
System Report for xxxxxx on Wed Jun 4 17:09:54 CST 2014
Hostname: xxxxxx NIS Domain:
Processor:
Running at 6077.22
6077.22
...
6077.22 bogomips with 2048 KB
2048 KB
...
2048 KB cache
OS Type: Linux
Kernel: 3.10.13-0.96-xen
Kernel Compile #1 on SMP Wed Feb 15 13:33:49 UTC 2012 (d73692b)
Uptime: 26.09 days
Memory: 4155904 kB Free: : 100
Swap: 16779260 kB Free: : 100
Load Avderage: 0.00 0.01 0.05
Process Count: total 0 running sleeping 0 stopped 4 zombie