系统巡检脚本,有常用的检查模块,如硬盘、内存、进程等。安全性检查等.

1.巡查脚本

代码如下(示例):xunjian.sh

#!/bin/bash#系统状态
host(){while :doclearecho -e "当前在查看\e[1; 31m[主机状态信息]Ne[0m"echo -e "\e[1;35m选择如下:\e[0m"echo -e "\e[1;34m1. 登录情况检查\e[0m"echo -e "\e[1;34m2. 特权用户检查\e[0m"echo -e "\e[1;34m3. mail 日志文件大小检查\e[0m"echo -e "\e[1;34m4. NTP 授时服务状态检查\e[0m"echo -e "\e[1;34m5. NTP 同步服务状态\e[0m"echo -e "\e[1;34m6. 系统错误日志检查\e[0m"echo -e "\e[1;34m7. 系统开启的端口及协议Ne[0m"echo -e "\e[1;34m8. 返回主菜单\e[0m"read -p "请输入你的选择:" choicecase $choice in
1)echo "当前用户登录状态为: "who | awk '{log_users[$1]++}END{for (user in log_users){printf "%s 用户登陆了 %d 个终端\n",user,log_users[user]}}';;
2)echo -n "特权用户(uid=0)数量为: "awk -F: '$3==0 {print $1}' /etc/paaawd | wc -l;;
3)echo -n "当前单个邮件文件占用空间大于 64M 的数量为:"find /var/spool/mail -size +64M | wc -l;;
4)echo -n "NTP 授时服务状态为:"systemctl status chronyd | sed -n 3p | awk '{print $2}'
;;
5)systemctl status chronyd | sed -n 3p | awk '{print $2}'[ "${status}" == "yes" ] && echo -e "\e[1;32mNTP 同步服务正在运行\e[0m" || echo -e "\e[1;31mNTP 同步服务当前没有运行\e[0m";;
6)cat /var/log/messages | egrep -i "fail|error|fatal|crittcal" &> /dev/mull[ $? -eq 0 ] && echo -e "\e[1;31m系统中有错误日志,请管理人员留意\e[0m" || echo -e "\e[1;32m暂时没有错误日志\e[0m";;
7)echo "当前主机开发的端口协议类型:"ss -pnult | awk '{print $1,$5}' | awk -F "[: ]" '{print "协议: "$1,"端口: "$NF}' | grep "[0-9]" | uniq;;
8)break;;
*)echo -e "\e[1;33m没有该选项,请重新选择\e[0m"
esac
echo
read -p "按 <ENTER> 键继续..."
done
clear
}#网络相关
network(){while :doclearecho -e "当前在查看\e[1;31m[网络状态信息]\e[0m"echo -e "\e[1;35选择如下:\e[0m"echo -e "\e[1;34m1. 网络传输检查\e[0m"echo -e "\e[1;34m2. 网络连接的数量及状态\e[0m"echo -e "\e[1;34m3. 主机解析检查\e[0m"echo -e "\e[1;34m4. 路由状态检查\e[0m"echo -e "\e[1;34m5. 返回主菜单\e[0m"read -p "请输入你的选择:" choicecase $choice in1)RX_DRP_num=`netstat -in | grep -Ei "eth" | awk '{print$5}' | awk 'BEGIN{size=0}{size=$1}END{print size}'`TX_DRP_num=`netstat -in | grep -Ei "eth" | awk '{print$9}' | awk 'BEGIN{size=0}{size=$1}END{print size}'`if [ ${RX_DRP_num} -ne 0 -a ${TX_DRP_num} -ne 0 ];thenecho -e "\e[1;31m网络传输过程中存在过问题\e[0m"elseecho -e "\e[1;32m网络传输状态暂时良好\e[0m"fi;;2)netstat -ant | grep "^tcp" | awk '{print $6}' | sont | uniq -c;;3)grep "127.0.0.1" /etc/hosts &> /dev/mullif grep "127.0.0.1" /etc/hosts &> /dev/mull;thenecho -e "\e[1;32m主机解析正常\e[0m"elseecho -e "\e[1;31m主机解析不正常\e[0m"fi;;4)router=`netstat -nr | grep "UG" | awk '{print $2}'`if ping -c2 -W2 $router &> /dev/mull;thenecho -e "\e[1;31m默认路由运行状态暂时良好\e[0m"elseecho -e "\e[1;31m默认路由故障,请及时检查处理\e[0m"fi;;5)break;;*)    echo -e "\e[1;33m没有该选项,请重新选择\e[0m"esacechoread -p "按 <ENTER> 键继续..."doneclear
}#进程相关
process(){while :doclearecho -e "当前在查看\e[1;31m[进程状态信息]\e[0m"echo -e "\e[1;35m选择如下:\e[0m"echo -e "\e[1;34m1. 僵尸进程检查\e[0m"echo -e "\e[1;34m2. 父进程为 1 的非 root 用户检查\e[0m"echo -e "\e[1;34m3. 返回主菜单\e[0m"read -p "请输入你的选择:" choicecase $choice in1)ps -ef | grep -v "grep" | grep defunc[ $? == 0 ] && echo -e "\e[1;31m当前有僵尸进程\e[0m" || echo -e "\e[1;32m当前没有僵尸进程\e[0m";;2)echo "父进程为 1 的非 root 用户进程:"ps -ef | awk '$3 == 1 && $1 != "root"{print}';;3)break;;*)echo -e "\e[1;33m没有该选项,请重新选择\e[0m"esacechoread -p "按 <ENTER> 键继续..."doneclear
}#内存相关
memory(){while :doclearecho -e "当前在查看\e[1;31m[内存状态信息]\e[0m"echo -e "\e[1;35m选择如下:\e[0m"echo -e "\e[1;34m1. 交换空间使用率检查\e[0m"echo -e "\e[1;34m2. 操作系统内存利用率检查\e[0m"echo -e "\e[1;34m3. 最耗内存的进程检查\e[0m"echo -e "\e[1;34m4. CPU 利用率检查\e[0m"echo -e "\e[1;34m5. 最耗 CPU 进程检查\e[0m"ec ho -e "\e[1;34m6. 返回主菜单\e[0m"read -p "请输入你的选择:" choicecase $choice in1)free | grep Swap | awk '{if ($3/$2 < 0.3){print "交换空间使用量暂时没有超过 30%,状态良好"}else{print "警告,交换空间已使用超过 30%"}}';;2)free | grep "Mem" | awk '{if ($3/$2 < 0.7){print "系统内存使用情况暂时没有超过 70%,状态良好"}else{print "系统内存使用已超过 70%,请留意"}}';;3)ps auxww | sed '1d' | awk '{if($4 > 20){print $0; flag="bad"}}END{if (fiag!="bad"){print "暂时没有占用内存过多的进程"}}';;4)echo "正在查询 CPU 空闲状态时间比例,请稍后..."yum -y install sysstat &> /dev/mullsar 2 2 | grep -ivE "cpu" | awk '{if ($9>30) print $9}' | sed '/^$/d';;5)ps auxww | sed 'ld' | awk '{if ($3>30){print $0; flag="bad"}}END{if(fiag!="bad"){print "暂时没有耗用 CPU 资源过多的进程"}}';;6)break;;*)echo -e "\e[1;33m没有该选项,请重新选择\e[0m"esacechoread -p "按 <ENTER> 键继续..."doneclear
}#磁盘管理
disk(){while :doclearecho -e "当前在查看\e[1;31m[磁盘状态信息]\e[0m"echo -e "\e[1;35m选择如下:\e[0m"ech   o -e "\e[1;34m1. 文件系统使用率\e[0m"echo -e "\e[1;34m2. 文件系统 inode 节点使用率\e[0m"echo -e "\e[1;34m3. 文件系统挂载检查\e[0m"echo -e "\e[1;34m4. lv 状态检查\e[0m"echo -e "\e[1;34m5. pv 状态检查\e[0m"echo -e "\e[1;34m6. 返回主菜单\e[0m"read -p "请输入你的选择:" choicecase $choice in1)devs=`df | grep -v "/dev/sr0" | tr -s " "% | awk -F% ' NR!=1 && $5 > 70 {print $6}'`if [ -z "${devs}" ];thenecho -e "\e[1;32m当前没有磁盘空间大于 70% 的设备\e[0m"elseecho "磁盘空间使用率大于 70% 的有:"echo "${devs}" | tr ' ' '\n'fi;;2)df -i | tr -s " " % | awk -F% '{if(NR!=1 && $5 > 70){print "%s inode 节点使用率大于 70%\n",$1;fiag="bad"}} END{if(fiag!="bad"){print "暂时没有 inode 使用量超过 70% 的文件系统,状态良好"}}';;3)dev_in_fstab=`egrep '^[^#\s]' /etc/fstab | awk '$2 !="swap" {print $2}'`dev_in_df=`df | awk '{print $6}'`for dev_in_fstab in $dev_in_fstab;doif !(echo $dev_in_df | grep $dev_in_fstab &> /dev/null);thenecho -e "\e[1;31m警告! \e[1;33m$dev_fstab\e[0m 没有挂载\e[0m"flag="bsd"fidone[[ $flag != "bad" ]] && echo "/etc/fstab 中的所有储存设备均匀挂载到系统";;4)lvdisplay 2> /dev/mull    | grep "Lv Status";;5)pvdisplay 2> /dev/mull | grep "Allocatable";;6)break;;*)echo -e "\e[1;33m没有该选项,请重新选择\e[0m"esacechoread -p "按 <ENTER> 键继续..."doneclear
}# 提示菜单,程序开始
menu(){clearwhile :doecho -e "当前在\e[1;31m[菜单]\e[0m"echo -e "       \e[1;36mSYSTEM CHECK\e[0m"echo -e "\e[1;36m1. Host\e[0m"echo -e "\e[1;36m2. network\e[0m"echo -e "\e[1;36m3. process\e[0m"echo -e "\e[1;36m4. memory\e[0m"echo -e "\e[1;36m5. Disk\e[0m"echo -e "\e[1;36m6. Exit\e[0m"read -p "请输入要进行检查的项目前的序号:" choicecase $choice in1)host;;2)netstat;;3)process;;4)memory;;5)disk;;6)break;;*)echo -e "\e[1;33m没有该选项,请重新选择\e[0m"esacdoneecho "BYE"}# 调用 menu,开始整个程序menu

Linux CentOS 巡检脚本相关推荐

  1. Linux自动巡检脚本

    Linux自动巡检脚本 该脚本适用于日常巡检,可根据需求自行增减内容 脚本内容 [root@localhost ~]# cat xunjian-v1.sh #!/bin/bash ########## ...

  2. linux系统巡检脚本

    转自:https://blog.51cto.com/11555417/2046978 #!/bin/bash #主机信息每日巡检 IPADDR=$(ifconfig eth0|grep 'inet a ...

  3. linux服务器巡检脚本shell

    #!/bin/bash #主机信息每日巡检IPADDR=$(ifconfig eth0|grep 'inet addr'|awk -F '[ :]' '{print $13}') #环境变量PATH没 ...

  4. Linux 主机巡检脚本(包含 k8s)

    文章目录 效果展示 目录结构 config/conf.sh inspection.sh 效果展示 ===================== 2022/05/20-09:12:11+0000 ==== ...

  5. linux服务器运维巡检脚本,linux服务器巡检脚本

    巡检的基本步骤: 1.在每台服务器上部署巡检的脚本,查询相应的日志. 2.将每台服务器上的日志发送到ftp服务器的指定目录下. 3.遍历ftp服务器指定目录,并且将各个的文件信息整理到一个文件中. 4 ...

  6. linux巡检脚本shell,linux系统巡检脚本shell实例

    #!/bin/sh BACKUP_TIMESTAMP=`date +%Y%m%d` HOSTNAME=`hostname` num=89 ###################核查文件系统opt### ...

  7. Linux服务器系统自动巡检脚本生成html报告

    一. 前言 1.在上一篇文章里给大家介绍oracle自动巡检脚本生成html报告,这篇文章介绍linux服务巡检脚本生成html报告. 2.脚本依然是简单脚本语句的堆积,方便大家二次编辑使用. 3.项 ...

  8. Linux服务器日常巡检脚本分享

    Linux 系统日常巡检脚本,巡检内容包含了,磁盘,内存cpu进程文件更改用户登录等一系列的操作 直接用就行了.报告以邮件发送到邮箱 在log下生成巡检报告. 欢迎关注微信公众号[厦门微思网络].ww ...

  9. Linux 巡检脚本大全

    Linux 巡检脚本 #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/roo ...

最新文章

  1. WCF学习笔记(基于REST规则方式)
  2. Servlet的初始化参数
  3. 客户端使用win共享文件出错解决方法
  4. TLS实现代码段加密
  5. Python中sort和sorted的用法与区别
  6. mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
  7. [云计算]网线的标签格式
  8. SmtpClient 类
  9. signalr判断对方是否和服务器断开_感情初期,如何快速判断对方是否合适,看这三件事...
  10. Win XP 经典壁纸拍摄地 24 年后变样了
  11. layui表单验证范例
  12. 电力电子课设日志(已完结)
  13. c语言头文件下载大全,C语言头文件大全
  14. 史话下:量子物理学的前世今生
  15. AI算力基础 -- TPU1.0
  16. 微调StyleGAN2模型
  17. Axure中移动的绝对位置
  18. 老湿人----山河拱手,为君一笑
  19. t检验自由度的意义_统计学中自由度的理解和应用
  20. SmartRF04EB修复与修改ID号

热门文章

  1. java饥荒,我的世界1.7.10饥荒整合包
  2. easyexcel的动态表头和自定义转换器
  3. 保险行业“智慧化”,数字化运营方案
  4. CSS3绘制的军曹giroro卡通图像
  5. Windows 10 2019 十一月版官方镜像下载
  6. lxc(1):lxc安装
  7. 机器学习中常见的评估方法
  8. 为什么说虚拟主机是个人站长的最佳选择
  9. 不想写日报、周报,这个报表自动化软件太牛了,仅需三分钟
  10. 酷狗、QQ、天天动听——手机音乐播放器竞品对比