Linux服务器巡检脚本

一个用于服务器基础信息查询的脚本

1. 首先创建一个脚本文件

touch daily_check.sh

2. 在脚本文件中写入如下脚本

#!/bin/bash
# daily_check.sh —— 单机日常巡检小工具
# Usage: ./daily_check.sh [ > /var/log/daily_check.log ]

HOST=$(hostname)
NOW=$(date '+%F %T')
DIV="--------------------------------------------------"

echo "========== 巡检时间: ${NOW}  主机: ${HOST} =========="
echo

# 1. 磁盘剩余空间与挂载点
echo "① 磁盘剩余空间与挂载点"
printf "%-20s %-8s %-8s %-8s %-5s %s\n" Filesystem Size Used Avail Use% Mounted
echo "$DIV"
df -hP | grep -vE '^Filesystem|tmpfs|devtmpfs|udev' \
          | awk '{printf "%-20s %-8s %-8s %-8s %-5s %s\n", $1,$2,$3,$4,$5,$6}'
echo

# 2. CPU 使用率(1 秒采样,取 idle 反算)
echo "② CPU 使用率(最近 1 秒)"
CPU_IDLE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print int($1)}')
CPU_USED=$((100 - CPU_IDLE))
echo "CPU 使用率: ${CPU_USED}%"
echo

# 3. 内存使用率
echo "③ 内存使用率"
# 以 /proc/meminfo 为准,算 used = total - free - buffers - cached
awk '
/^MemTotal:/  {total=$2}
/^MemFree:/   {free=$2}
/^Buffers:/   {buff=$2}
/^Cached:/    {cache=$2}
END{
  used=total-free-buff-cache;
    printf "总内存: %.2f GB, 已用: %.2f GB (%.1f%%), 剩余: %.2f GB\n",
             total/1024/1024, used/1024/1024, used/total*100, (total-used)/1024/1024
     }' /proc/meminfo
echo

# 4. 系统平均负载
echo "④ 系统平均负载"
uptime
echo

# 5. 整机 CPU 占用百分比 + 近 5 分钟 CPU 占用最高的前 5 个进程
echo "⑤ 整机 CPU 占用 & 近 5 分钟 CPU 占用 TOP5 进程"

# --- 整机 CPU 使用率(1 秒采样) ---
CPU_IDLE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print int($1)}')
CPU_USED=$((100 - CPU_IDLE))
echo "整机 CPU 使用率: ${CPU_USED}%"
echo

# --- 进程榜 ---
PS_FIELDS="pid,ppid,%cpu,%mem,command"
ps -eo $PS_FIELDS --sort=-%cpu | head -n 6
echo

# 6. 磁盘使用率超过 80% 的挂载点报警
echo "⑥ 磁盘使用率报警阈值(>80%)"
df -hP | awk 'NR>1 && int($5)>80 {print $0}' | while read line; do
  echo ">>> 告警:${line}"
done
[[ -z $(df -hP | awk 'NR>1 && int($5)>80') ]] && echo "所有磁盘使用率正常"
echo
echo "======================== 巡检结束 ========================"

3. 授予脚本文件执行权限

chmod +x daily_check.sh

 

使用:

在需要巡检时找到 daily_chech.sh 的路径,执行后即可看见相关输出

========== 巡检时间: 2025-09-26 14:32:01  主机: web01 ==========

① 磁盘剩余空间与挂载点
Filesystem           Size     Used     Avail    Use%  Mounted
/dev/vda1            40G      12G      26G      32%   /
/dev/vdb1            100G     55G      40G      58%   /data

② CPU 使用率(最近 1 秒)
CPU 使用率: 23%

③ 内存使用率
总内存: 7.79 GB, 已用: 3.21 GB (41.2%), 剩余: 4.58 GB

④ 系统平均负载
 14:32:01 up 21 days,  3 users,  load average: 0.18, 0.25, 0.30

⑤ 整机 CPU 占用 & 近 5 分钟 CPU 占用 TOP5 进程
整机 CPU 使用率: 23%

  PID  PPID %CPU %MEM COMMAND
 1234     1  5.6  2.3 php-fpm: pool www
 5678  1234  4.2  1.8 nginx: worker process
 ...

⑥ 磁盘使用率报警阈值(>80%)
所有磁盘使用率正常

======================== 巡检结束 ========================

 

posted @ 2025-09-26 12:11  安培昌浩  阅读(16)  评论(0)    收藏  举报