根据公司需求写的一个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