服务器巡检项目

1.编辑服务器巡检脚本

bash 复制代码
[root@master ~]# vim  check.sh

2.剖析服务器巡检项目脚本的内容及含义

2.1安装服务器巡检相关软件

bash 复制代码
yum install bc sysstat net-tools  lrzsz  -y  &> /dev/null

2.2获取服务器主机名

bash 复制代码
system_hostname=$(hostname | awk '{print $1}')

2.3获取服务器主机IP地址

bash 复制代码
system_hostname=$(hostname | awk '{print $1}')

2.4获取服务器系统信息

bash 复制代码
system_ip=$(ip a | grep "global" | awk '{print $2}'| awk -F "/"  '{print $1}')

2.5获取服务器系统信息

bash 复制代码
system=$(grep  "^NAME"  /etc/os-release | awk -F  \"  '{print $2}')

2.6获取服务器系统版本

bash 复制代码
version=$(awk '{print $3 $4}'  /etc/openEuler-release)

2.7获取总内存信息

bash 复制代码
mem_total=$(free -m | awk '/Mem/{print $2}')

2.8获取已用内存信息

bash 复制代码
mem_use=$(free -m | awk '/Mem/{print $3}')

2.9获取可用内存信息

bash 复制代码
mem_free=$(free -m | awk '/Mem/{print $4}')

2.10获取CPU核心数

bash 复制代码
cpu_mun=$(grep -c   "processor"  /proc/cpuinfo)

2.11获取CPU使用率

bash 复制代码
cpu_use=$(top -n 1 -b | awk '/%Cpu/{print $2}')

2.12获取系统当前1分钟负载

bash 复制代码
load_1=$(uptime | awk '{print $8}'| sed -n 's/\,//gp')

2.13获取系统当前5分钟负载

bash 复制代码
load_5=$(uptime | awk '{print $9}'| sed -n 's/\,//gp')

2.14获取系统当前15分钟负载

bash 复制代码
load_15=$(uptime | awk '{print $10}')

2.15获取磁盘I/O信息

bash 复制代码
disk_io=$(iostat -d -x -k 1 1 | awk '/sda/{print $1,$14"ms"}')

2.16获取磁盘使用率大于50%的信息

bash 复制代码
disk_lv=$(df -Ph | awk '{if(+$5>50) print "分区:"$1,"总空间:"$2,"使用空间:"$3,"剩余空间:"$4,"使用率:"$5}')

2.17获取磁盘使用信息

bash 复制代码
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 "使用空间:"$3}')
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}')

2.18巡检信息保存路径

bash 复制代码
path="/root/monitor.txt"

2.19内存阈值

bash 复制代码
mem_mo='50'

2.20写入巡检信息到文件

bash 复制代码
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              >> $path
if [[ $(echo $disk_ux1 | sed s/%//g) -gt 50 ]]
then
        echo $disk_fq >> $path
        echo $disk_to >> $path
        echo $disk_us >> $path
        echo $disk_fe >> $path
        echo $disk_ux >> $path
        echo "磁盘巡检状态:不正常" >> $path
else
        echo $disk_fq >> $path
        echo $disk_to >> $path
        echo $disk_us >> $path
        echo $disk_fe >> $path
        echo $disk_ux >> $path
        echo "磁盘巡检状态:正常" >> $path
fi

PERCENT=$(printf "%d%%" $(($mem_use*100/$mem_total)))

PERCENT_1=$(echo $PERCENT | sed 's/%//g')

if [[ $PERCENT_1 -gt $mem_mo ]]
then
        echo -e         "总内存大小:$mem_total MB"      >> $path
        echo -e         "已用内存:$mem_use MB"          >> $path
        echo -e         "内存剩余大小:$mem_free MB"     >> $path
        echo -e         "内存使用率:$PERCENT"           >> $path
        echo -e         "内存巡检状态:不正常"           >> $path
else
        echo -e         "总内存大小:$mem_total MB"      >> $path
        echo -e         "已用内存:$mem_use MB"          >> $path
        echo -e         "内存剩余大小:$mem_free MB"     >> $path
        echo -e         "内存使用率:$PERCENT"           >> $path
        echo -e         "内存巡检状态:正常"             >> $path
fi

echo -e "平均1分钟负载:$load_1\n平均5分钟负载:$load_5\n平均15分钟负载:$load_15" >> $path

3.运行服务器巡检项目脚本

bash 复制代码
[root@master ~]# bash check.sh 
[root@master ~]# ls
anaconda-ks.cfg  check.sh  monitor.txt
[root@master ~]# cat monitor.txt 
 
主机名:master
服务器IP:192.168.75.154
服务器系统名:openEuler
服务器系统版本:22.03(LTS-SP4)
总内存:3375
已使用内存:410
可用内存:2538
CPU核心数:2
CPU使用率:0.0
磁盘I/O:sda 0.00ms
分区:/dev/mapper/openeuler-root
总空间:27G
使用空间:2.1G
剩余空间:24G
磁盘使用率:8%
磁盘巡检状态:正常
总内存大小:3375 MB
已用内存:410 MB
内存剩余大小:2538 MB
内存使用率:12%
内存巡检状态:正常
平均1分钟负载:0.00
平均5分钟负载:0.01
平均15分钟负载:0.00

备份:服务器巡检脚本完整版

bash 复制代码
#!/bin/bash

#版本:V1.0
#作者:jeams
#日期: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>50) 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 "使用空间:"$3}')
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              >> $path
if [[ $(echo $disk_ux1 | sed s/%//g) -gt 50 ]]
then
        echo $disk_fq >> $path
        echo $disk_to >> $path
        echo $disk_us >> $path
        echo $disk_fe >> $path
        echo $disk_ux >> $path
        echo "磁盘巡检状态:不正常" >> $path
else
        echo $disk_fq >> $path
        echo $disk_to >> $path
        echo $disk_us >> $path
        echo $disk_fe >> $path
        echo $disk_ux >> $path
        echo "磁盘巡检状态:正常" >> $path
fi

PERCENT=$(printf "%d%%" $(($mem_use*100/$mem_total)))

PERCENT_1=$(echo $PERCENT | sed 's/%//g')

if [[ $PERCENT_1 -gt $mem_mo ]]
then
        echo -e         "总内存大小:$mem_total MB"      >> $path
        echo -e         "已用内存:$mem_use MB"          >> $path
        echo -e         "内存剩余大小:$mem_free MB"     >> $path
        echo -e         "内存使用率:$PERCENT"           >> $path
        echo -e         "内存巡检状态:不正常"           >> $path
else
        echo -e         "总内存大小:$mem_total MB"      >> $path
        echo -e         "已用内存:$mem_use MB"          >> $path
        echo -e         "内存剩余大小:$mem_free MB"     >> $path
        echo -e         "内存使用率:$PERCENT"           >> $path
        echo -e         "内存巡检状态:正常"             >> $path
fi

echo -e "平均1分钟负载:$load_1\n平均5分钟负载:$load_5\n平均15分钟负载:$load_15" >> $path
相关推荐
会飞的灰大狼7 分钟前
MySQL主从复制部署
linux·mysql·ubuntu·centos7
ZZZKKKRTSAE21 分钟前
RHCE认证题解
linux·运维·服务器·ansible·rhce·rhel9·红帽
Lbwnb丶24 分钟前
openssl创建公钥私钥 pem+ der
linux·运维·服务器
❀͜͡傀儡师32 分钟前
达梦数据库日常运维命令
运维·数据库
2501_920047031 小时前
linux-系统性能监控
linux·运维·服务器
呉師傅1 小时前
奔图P2500NW打印机手机无线连接方法
运维·网络·windows·智能手机·计算机外设·电脑
jsons12 小时前
centos KVM
linux·运维·centos
趴着喝可乐2 小时前
CentOS的ISO镜像下载
linux·运维·centos
白白白鲤鱼2 小时前
Vue2项目—基于路由守卫实现钉钉小程序动态更新标题
服务器·前端·spring boot·后端·职场和发展·小程序·钉钉