当前位置: 首页 > 编程笔记 >

根据公司需求写的一个linux 巡检小脚本

方祺
2023-03-14
本文向大家介绍根据公司需求写的一个linux 巡检小脚本,包括了根据公司需求写的一个linux 巡检小脚本的使用技巧和注意事项,需要的朋友参考一下

核心代码

#!/bin/bash

check_process(){
tolprocess=`ps auxf|grep DisplayMa[nager]|wc -l`

#if [ "$tolprocess" -lt "1" ];then
if [ "$tolprocess" -ge "1" ];then
	echo 'process ok'
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-ng ok'
    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 'syslog ok'
    fi
else
	echo 'log not find or error'
fi
}


check_cpuidle(){
mincpu=`sar -u 2 10|grep all|awk '{print $NF}'|sort -nr|tail -1`

if [ $(echo "${mincpu} < 20" | bc) = 1 ];then
#if [ "$mincpu" -le "20" ];then
	echo 'cpu idle is less than 20% ,please check'
else
	echo 'cpu idle is more than 20%, it is ok '
fi

}


check_mem(){
vmstat 2 10 
}


check_disk(){
chkdsk=`fdisk -l|egrep 'failed|unsynced|unavailable'|wc -l`
if [ "$chkdsk" -ge "1" ];then
    echo 'fdisk check ok '
else
    echo 'fdisk check find error,please check your disk '
fi
}


check_io(){
util=`sar -d 2 10|egrep -v 'x86|^$|await'|awk '{print $NF}'|sort -nr|tail -1`
await=`sar -d 2 10|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 'disk io check is fine'
else
	echo 'disk io use too high '
fi

}


check_swap(){

tolswap=`cat /proc/meminfo|grep SwapTotal|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 'swap use is ok '
else
    echo "useswap: $useswap kb, swap util is $util"
fi

}


check_dmesg(){
chkdm=`dmesg |egrep 'scsi reset|file system full'|wc -l`
if [ "$chkdm" -ge "1" ];then
    echo 'dmesg test ok '
else
    echo 'dmesg check find error '
fi
}

check_boot(){
chkdm=`cat /var/log/boot.msg|egrep 'scsi reset|file system full'|wc -l`
if [ "$chkdm" -ge "1" ];then
    echo 'boot check fine '
else
    echo 'boot check find error '
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 'inode check ok '
else
    echo 'inode used more than 80% '
fi
}

check_df(){
dfuse=`df -HT|awk '{print $6}'|grep -v Use|sed 's/%//g'|sort -nr|head -1`
if [ $(echo "${dfuse} < 80" | bc) = 1 ];then
    echo 'disk used is less than 80% ,it is ok !'
elif [ $(echo "${dfuse} > 80" | bc) = 1 ] && [ $(echo "${dfuse} < 90" | bc) = 1 ];then
    echo 'warning , disk used more than 80% and less than 90% '
else
    echo ' Critical, disk used more than 90% '
fi
}


echo '################### check process ###################'
check_process
echo '################### check syslog ####################'
check_log
echo '################### check cpuidle ###################'
check_cpuidle
echo '################### echo memory stat ################'
check_mem
echo '################### check fdisk #####################'
check_disk
echo '################### check io used ###################'
check_io
echo '################### check swap used #################'
check_swap
echo '################### check dmesg #####################'
check_dmesg
echo '################### check inode #####################'
check_inode
echo '################### check disk used #################'
check_df

保存为/system/check_linux.sh

 类似资料:
  • 本文向大家介绍mysql巡检脚本(必看篇),包括了mysql巡检脚本(必看篇)的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇mysql巡检脚本(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • #在找工作求抱抱# #如何判断面试是否凉了# #找工作中的意难平# #2023届春招# TCP和UDP的区别 C++中多态的使用(期末考试即视感) C++中类和结构体的区别(答得不好) C++空类中有什么函数(满脑子big Five,5个,用的时候都记得,名字真背不全) 数据库没问 项目也没问…… 感觉真不怎么样

  • 1.先来自我介绍吧 2.你说一下面向对象 3.你说一下你面向对象的特性 4.Mysql增删改查语句 5.Linux命令:在普通用户下把一个文件解压复制到根目录下的bin目录 6.git上传代码的流程 7.那你知道哪些排序算法 8.解释下冒泡 9.后端怎么解决跨域的问题 10.介绍前司的项目

  • 因为我的简历是开发简历,所以全问的是开发知识。不具有一般性,看面试官。 1. 介绍一下项目,并说一下在你眼中对软件测试的看法? 2. 你为什么要用 Redis?有什么好处? 3. 你提到 session 共享,什么时候用到 session 共享? 4. cookie 知道是什么吗?JWT 呢? 5. 你项目是用什么框架写的? 6. 你项目用了几张表? 7. 模糊查询文章标题中包含 “南京” 的 S

  • boss上投的,上海司睿杰建科,回复后第二天直接约面了,很爽快  腾讯会议30分钟,没开视频,都是常规八股  自我介绍,专门问了一下学校(吉尔大学🤣)  介绍一下你比较熟悉的数据结构:我提了一嘴跳表:对比哈希表什么情况下用跳表效果更好?  介绍项目,提问技术难点  go map的底层实现  go slice的底层实现  介绍一下innodb?你是怎么学习的?  通常情况下你会怎么去设计数据库? 

  • (面着玩玩,过了,但没去) (没问八股,基本场景题和之前两家公司实习工作内容和代码能力) 主要是前大二和大三前两家公司工作内容,项目技术。 nacos 配置中心和yml springboot Condition 如何实现对象的自动配置条件。 自己手写哪些sdk jdk8:Stream流,lamda 工具包依赖:jackson,fastjson,hutool,easyExcel,