linux 自检脚本-服务器集群磁盘内存进程错误日志

2021-04-19 10:02:46 浏览数 (1)

代码语言:javascript复制
#!/bin/bash
# 服务器磁盘 内存 进程  错误日志
# 脚本开发:万杨  
lggname="root"
#lggname="zxin10"
setdiskp=13                              # 设置磁盘分区告警百分率,为纯数字
setfree=6                                # 设置内存告警百分率,为纯数字
ipa=$(  ip a | grep 'scope global' | awk -F" " '{print $2}' | awk -F"/" '{print $1}'   )
echo "
#-------------------------  检测设备  -------------------------#
                     设备IP:$ipa
"
df -hl ;
diskcp=(`df -hl | grep -v Filesystem | awk -F" " '{print $5}'  | awk -F"%" '{print $1}'`)
for i in $diskcp
do
if [ $i -gt $setdiskp ]
then
echo "告警 : ============================>  磁盘至少一个分区出现占用率超过 $setdiskp %"
fi
done
echo "#-------------------------  存储使用情况  -------------------------#" ;
free -m
mtotal=`free -m | grep Mem | awk -F" " '{print $2}' ` ; echo "总内存为:$mtotal MB"
mused=`free -m | grep Mem | awk -F" " '{print $3}' ` ; echo "已使用:$mused MB"
syl=$(
awk 'BEGIN{
mtotal='"$mtotal"'
mused='"$mused"'
syl=mused/mtotal*100
printf "%d" , syl
}'
)
echo "内存使用率:$syl %"
if [ $syl -gt $setfree ] ; then
echo "
告警 : ============================>  内存占用超过 $setfree %"
fi
#ge 大等于,le小等于;  gt lt ; wc -l 统计行数  sort 按名称排序 ; uniq -c  计算重复的行个数
echo "#-------------------------  内存使用情况  -------------------------#"
#ps -ef | grep  'root' |  grep -v Proto | awk -F" " '{print $8}' | awk -F":" '{print $1}' | sort | uniq -c
ps -u $lggname  | awk -F" " '{print $4}'  | sort | uniq -c
#----------  判断进程函数 ----------#
runfunction(){
 echo "主机:$htname"
for i in ${psdz[*]}
do
runps=$(ps -u $lggname  | awk -F" " '{print $4}'  | sort | uniq -c |grep $i |wc -l )
if [[  $runps -lt 1 ]]
then
echo " 告警 : ============================>  $i 服务已停止运行 "
else
echo "运行中:$i"
fi
done
echo "#-------------------------  运用进程 -------------------------#"
}
#--------  根据名字进行判断进程 -------#
htname=$( uname -a | awk -F" " '{print $2}' | sed "s/[0-9]*$//g")




echo "#-------------------------  错误日志 -------------------------#"

0 人点赞