当前位置: 首页 > news >正文

系统日常巡检脚本

系统巡检脚本用于自动化检查服务器或网络设备的运行状态,包括CPU、内存、磁盘、网络等关键指标。

新建脚本check1.sh

#!/bin/bash# 版本:V1.0
# 作者: andy
# 日期: 2025-8-5
# 功能:服务器巡检脚本#yum install bc sysstat  net-tools  lrzsz  -y  &> /dev/null# 获取服务器主机名
system_hostname=$(hostname  |  awk '{print  $1}')# 获取服务器主机IP地址
system_ip=$(ip a | grep  "global" | awk  '{print $2}' | awk -F "/" '{print  $1}')# 获取服务器系统信息
system=$(grep  "^NAME"  /etc/os-release  | awk  -F \" '{print $2}')# 获取服务器系统版本
version=$(awk  '{print $3 $4}'  /etc/openEuler-release)\# 获取总内存信息
mem_total=$(free  -m | awk  '/Mem/{print  $2}')# 获取已用内存信息
mem_use=$(free  -m | awk  '/Mem/{print  $3}')# 获取可用内存信息
mem_free=$(free  -m | awk  '/Mem/{print  $4}')# 获取CPU核心数
cpu_mun=$(grep  -c  "processor"  /proc/cpuinfo)# 获取CPU使用率
cpu_use=$(top  -n 1 -b | awk '/%Cpu/{print  $2}')# 获取系统当前1分钟负载
load_1=$(uptime | awk '{print  $8}' | sed -n 's/\,//gp')# 获取系统当前5分钟负载
load_5=$(uptime | awk '{print  $9}' | sed -n 's/\,//gp')# 获取系统当前15分钟负载
load_15=$(uptime | awk '{print  $10}')# 磁盘I/O
disk_io=$(iostat  -d -x -k  1  1 | awk  '/sda/{print  $1,$14"ms"}')# 获取磁盘使用率大于50%的信息
disk_lv=$(df  -Ph | awk '{if(+$5>10) print "分区:"$1,"总空间:"$2,"使用空间:"$3,"剩余空间:"$4,"使用率:"$5}')# 获取磁盘使用信息
disk_fq=$(df  -h |  grep  "root"  | awk  '{print "分区:"$1}')
disk_to=$(df  -Ph |  grep  "root"  | awk  '{print "总空间:"$2}')
disk_us=$(df  -Ph |  grep  "root"  | awk  '{print "使用空间:"$4}')
disk_fe=$(df  -Ph |  grep  "root"  | awk  '{print "剩余空间:"$4}')
disk_ux=$(df  -Ph |  grep  "root"  | awk  '{print "磁盘使用率:"$5}')
disk_ux1=$(df  -Ph |  grep  "root"  | awk  '{print $5}')
# 巡检信息保存路径
path="/root/monitor.txt"# 内存阈值
mem_mo='50'# 写入巡检信息到文件
echo  -e  "######################### "         > $path
echo  -e  "主机名:          "$system_hostname  >> $path
echo  -e  "服务器IP:        "$system_ip        >> $path
echo  -e  "服务器系统名:    "$system           >> $path
echo  -e  "服务器系统版本:  "$version          >> $path
echo  -e  "总内存:          "$mem_total        >> $path
echo  -e  "已使用内存:      "$mem_use          >> $path
echo  -e  "可用内存:        "$mem_free         >> $path
echo  -e  "CPU核心数:       "$cpu_mun          >> $path
echo  -e  "CPU使用率:       "$cpu_use          >> $path
echo  -e  "磁盘I/O:         "$disk_io          >> $pathif [[ $(echo $disk_ux1 | sed s/%//g) -gt 50 ]]
thenecho  $disk_fq >> $pathecho  $disk_to >> $pathecho  $disk_us >> $pathecho  $disk_fq >> $pathecho  $disk_ux >> $pathecho  "磁盘巡检状态:不正常"  >> $path
elseecho  $disk_fq >> $pathecho  $disk_to >> $pathecho  $disk_us >> $pathecho  $disk_fq >> $pathecho  $disk_ux >> $pathecho  "磁盘巡检状态:正常"  >> $path
fiPERCENT=$(printf "%d%%" $(($mem_use*100/$mem_total)))
PERCENT_1=$(echo  $PERCENT | sed 's/%//g')if [[ $PERCENT_1 -gt $mem_mo ]]
thenecho  -e  "总内存大小:   $mem_total MB"     >>  $pathecho  -e  "已用内存:     $mem_use MB"       >>  $pathecho  -e  "内存剩余大小: $mem_free MB"      >>  $pathecho  -e  "内存使用率:   $PERCENT"          >>  $pathecho  -e  "内存巡检状态:不正常"            >>  $path
elseecho  -e  "总内存大小:   $mem_total MB"     >>  $pathecho  -e  "已用内存:     $mem_use MB"       >>  $pathecho  -e  "内存剩余大小: $mem_free MB"      >>  $pathecho  -e  "内存使用率:   $PERCENT"          >>  $pathecho  -e  "内存巡检状态:正常"              >>  $path
fiecho  -e  "平均1分钟负载:$load_1\n 平均5分钟负载:$load_5\n 平均15分钟负载:$load_15"  >> $path

执行脚本

bash check1.sh

查看脚本巡检信息

cat monitor.txt 

执行结果

小结:该脚本是一个自动化服务器巡检工具check1.sh,用于监控系统关键指标。它会收集主机名、IP、系统版本等基础信息,检测CPU使用率、内存占用(总内存、已用、剩余)、磁盘I/O和存储空间(对使用率>50%的分区特别标注),并记录系统负载(1/5/15分钟)。检测结果会输出到/root/monitor.txt,包含各指标状态判断(正常/不正常)。通过执行bash check1.sh运行脚本,使用cat monitor.txt查看巡检报告。

http://www.dtcms.com/a/332082.html

相关文章:

  • 将mysql数据库表结构导出成DBML格式
  • Qt---Qt函数库
  • ActionChains 鼠标操作笔记
  • # Vue 列表渲染详解
  • AI智能体|扣子(Coze)搭建【批量识别发票并录入飞书】Agent
  • FTP 服务详解:原理、配置与实践
  • 8月14日星期四今日早报简报微语报早读
  • [激光原理与应用-273]:理论 - 波动光学 - 光是电磁波,本身并没有颜色,可见光的颜色不过是人的主观感受
  • 时钟 中断 day54
  • close函数概念和使用案例
  • rustdesk 开源遥控软件
  • 云服务器运行持续强化学习COOM框架的问题
  • 低配硬件运行智谱GLM-4.5V视觉语言模型推理服务的方法
  • C#WPF实战出真汁01--项目介绍
  • linux设备驱动之USB驱动-USB主机、设备与Gadget驱动
  • 【Java|第十九篇】面向对象九——String类和枚举类
  • AI更换商品背景,智能融合,无痕修图
  • Java中加载语义模型
  • Windows bypassUAC 提权技法详解(一)
  • 洗浴中心泡池水过滤系统原理深度解析与工程实践
  • RocketMQ 4.9.3源码解读-客户端Consumer消费者组件启动流程分析
  • 具身智能Scaling Law缺失:机器人界的“摩尔定律“何时诞生?
  • Ansible企业级实战
  • centos部署chrome和chromedriver
  • C#WPF实战出真汁03--登录界面设计
  • C#WPF实战出真汁04--登录功能实现
  • 单目操作符与逗号表达式
  • CoreShop商城框架开启多租户(2)
  • 莫队 + 离散化 Ann and Books
  • 【19-模型训练细节 】