根据公司需求写的一个linux 巡检小脚本
核心代码:
#!/bin/bash
check_process(){
tolprocess=`psauxf|grepDisplayMa[nager]|wc-l`
#if["$tolprocess"-lt"1"];then
if["$tolprocess"-ge"1"];then
echo'processok'
else
echo'fail'
fi
}
check_log(){
if[-e/etc/syslog-ng/syslog-ng.conf];then
conlog=`cat'/etc/syslog-ng/syslog-ng.conf'|grep"10.70.72.253"|wc-l`
if["$conlog"-ge"1"];then
echo'syslog-ngok'
fi
elif[-e/etc/syslog.conf];then
conlog=`cat'/etc/syslog.conf'|grep"10.70.72.253"|wc-l`
if["$conlog"-ge"1"];then
echo'syslogok'
fi
else
echo'lognotfindorerror'
fi
}
check_cpuidle(){
mincpu=`sar-u210|grepall|awk'{print$NF}'|sort-nr|tail-1`
if[$(echo"${mincpu}<20"|bc)=1];then
#if["$mincpu"-le"20"];then
echo'cpuidleislessthan20%,pleasecheck'
else
echo'cpuidleismorethan20%,itisok'
fi
}
check_mem(){
vmstat210
}
check_disk(){
chkdsk=`fdisk-l|egrep'failed|unsynced|unavailable'|wc-l`
if["$chkdsk"-ge"1"];then
echo'fdiskcheckok'
else
echo'fdiskcheckfinderror,pleasecheckyourdisk'
fi
}
check_io(){
util=`sar-d210|egrep-v'x86|^$|await'|awk'{print$NF}'|sort-nr|tail-1`
await=`sar-d210|egrep-v'x86|^$|await'|awk'{print$(NF-2)}'|sort-nr|tail-1`
if[$(echo"${util}<80"|bc)=1]&&[$(echo"${await}<100"|bc)=1];then
echo'diskiocheckisfine'
else
echo'diskiousetoohigh'
fi
}
check_swap(){
tolswap=`cat/proc/meminfo|grepSwapTotal|awk'{print$2}'`
#awk'/SwapTotal/{total=$2}/SwapFree/{free=$2}END{print(total-free)/1024}'/proc/meminfo
useswap=`awk'/SwapTotal/{total=$2}/SwapFree/{free=$2}END{print(total-free)}'/proc/meminfo`
util=`awk'BEGIN{printf"%.1f\n",'$useswap'/'$tolswap'}'`
if[$(echo"${util}<0.3"|bc)=1]||[$(echo"${useswap}<1024"|bc)=1];then
echo'swapuseisok'
else
echo"useswap:$useswapkb,swaputilis$util"
fi
}
check_dmesg(){
chkdm=`dmesg|egrep'scsireset|filesystemfull'|wc-l`
if["$chkdm"-ge"1"];then
echo'dmesgtestok'
else
echo'dmesgcheckfinderror'
fi
}
check_boot(){
chkdm=`cat/var/log/boot.msg|egrep'scsireset|filesystemfull'|wc-l`
if["$chkdm"-ge"1"];then
echo'bootcheckfine'
else
echo'bootcheckfinderror'
fi
}
check_inode(){
maxinode=`df-i|awk'{print$5}'|egrep-v'IUse|-'|sed's/%//g'|sort-nr|head-1`
if[$(echo"${maxinode}<80"|bc)=1];then
echo'inodecheckok'
else
echo'inodeusedmorethan80%'
fi
}
check_df(){
dfuse=`df-HT|awk'{print$6}'|grep-vUse|sed's/%//g'|sort-nr|head-1`
if[$(echo"${dfuse}<80"|bc)=1];then
echo'diskusedislessthan80%,itisok!'
elif[$(echo"${dfuse}>80"|bc)=1]&&[$(echo"${dfuse}<90"|bc)=1];then
echo'warning,diskusedmorethan80%andlessthan90%'
else
echo'Critical,diskusedmorethan90%'
fi
}
echo'###################checkprocess###################'
check_process
echo'###################checksyslog####################'
check_log
echo'###################checkcpuidle###################'
check_cpuidle
echo'###################echomemorystat################'
check_mem
echo'###################checkfdisk#####################'
check_disk
echo'###################checkioused###################'
check_io
echo'###################checkswapused#################'
check_swap
echo'###################checkdmesg#####################'
check_dmesg
echo'###################checkinode#####################'
check_inode
echo'###################checkdiskused#################'
check_df
保存为/system/check_linux.sh