Linux服务器系统巡检脚本

发布时间:2024年01月15日
  1. CPU空闲率
  2. 系统总内存
  3. 系统已使用内存
  4. 系统可用内存
  5. 硬盘交换分区占用
  6. centos-root 分区信息
  7. centos-home 分区信息
  8. 网络使用情况
  9. 负载平均值
  10. 系统中运行的所有进程总数
  11. 正在运行的Java进程
  12. 正在使用的数据库和版本(MySQL,SQL Server)
#!/bin/bash

# CPU空闲率
echo "---------------------------------------------------------"
echo "CPU空闲率:"
top -bn1 | grep "Cpu(s)" | \
           sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
           awk '{print 100 - $1"%"}'

# 系统总内存
echo "---------------------------------------------------------"
echo "系统总内存:"
free -m | awk '/Mem:/ {print $2 " MB"}'

# 系统已使用内存
echo "---------------------------------------------------------"
echo "系统已使用内存:"
free -m | awk '/Mem:/ {printf "%.2f%%\n", $3*100/$2 }'

# 系统可用内存
echo "---------------------------------------------------------"
echo "系统可用内存:"
free -m | awk '/Mem:/ {printf "%.2f%%\n", $7*100/$2 }'

# 硬盘交换分区占用
echo "---------------------------------------------------------"
echo "硬盘交换分区占用:"
SWAP=$(free -m | grep Swap)
SWAP_TOTAL=$(echo $SWAP | awk '{print $2}')
SWAP_USED=$(echo $SWAP | awk '{print $3}')
if [ "$SWAP_TOTAL" -eq 0 ]; then
    echo "无交换分区"
else
    SWAP_USED_PERCENT=$(awk "BEGIN {printf \"%.2f\", ($SWAP_USED/$SWAP_TOTAL)*100}")
    echo "${SWAP_USED_PERCENT}%"
fi
# 显示 /dev/mapper/centos-root 分区信息
echo "---------------------------------------------------------"
echo "Root 分区信息:"
df -h /dev/mapper/centos-root | awk 'NR==2{print "总大小: " $2, "已使用: " $3, "剩余: " $4, "使用率: " $5}'

# 显示 /dev/mapper/centos-home 分区信息
echo "---------------------------------------------------------"
echo "Home 分区信息:"
df -h /dev/mapper/centos-home | awk 'NR==2{print "总大小: " $2, "已使用: " $3, "剩余: " $4, "使用率: " $5}'

# 网络使用情况
# 这里我们使用 /proc/net/dev 文件来获取网络接口的接收和发送的字节数
echo "---------------------------------------------------------"
echo "网络使用情况:"
cat /proc/net/dev | awk 'NR>2{printf "%s: Received: %s MB, Transmitted: %s MB\n", $1, $2/1024/1024, $10/1024/1024}'

# 负载平均值
echo "---------------------------------------------------------"
echo "负载平均值:"
uptime | awk -F'[a-z]:' '{ print $2}'

# 当前在操作系统中运行的所有进程的总数
echo "---------------------------------------------------------"
echo "系统中运行的所有进程的总数:"
ps -e | wc -l

# 正在运行的Java进程
echo "---------------------------------------------------------"
echo "正在运行的Java进程:"
ps -ef | grep java | grep -v grep | awk '{
  java_bin = ""; java_dir = ""; jar_file = "";
  for (i=1; i<=NF; i++) {
    if ($i ~ /-D(catalina.base|catalina.home)=/) {
      split($i, path, "=");
      java_dir = path[2];
    } else if ($i ~ /\.jar/) {
      jar_file = $i;
    } else if ($i ~ /\/java$/) {
      java_bin = $i;
    }
  }
  if (java_bin != "" && java_dir != "") {
    print java_bin " -> " java_dir "/temp";
  } else if (java_bin != "" && jar_file != "") {
    print java_bin " -> " jar_file;
  }
}'

# MySQL
echo "---------------------------------------------------------"
if command -v mysql &> /dev/null
then
    echo "MySQL版本:"
    mysql -V
else
    echo "MySQL未安装"
fi

# SQL Server
if command -v sqlcmd &> /dev/null
then
    echo "SQL Server版本:"
    sqlcmd -Q "SELECT @@VERSION" -h -1
else
    echo "SQL Server未安装"
fi
文章来源:https://blog.csdn.net/weixin_43816142/article/details/135603915
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。