Linux服务器系统巡检脚本

  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
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统巡检脚本是一种自动化工具,用于检查Linux操作系统的配置和性能,并提供系统状态的详细报告。它可以帮助管理员及时发现系统的问题和潜在的安全隐患,并采取适当的措施来解决这些问题。 Linux系统巡检脚本可以包括以下功能: 1. 系统配置检查:检查系统的配置文件,如/etc目录下的各类配置文件,以确保配置的正确性和安全性。 2. 硬件信息检查:检查服务器的硬件信息,包括CPU利用率、内存使用情况、磁盘空间、网络接口等,以便及时发现资源不足或异常情况。 3. 安全检查:检查系统的安全设置,例如账户安全性、权限设置、防火墙配置等,以确保系统的安全性。 4. 日志检查:检查系统的日志文件,包括/var/log目录下的各类日志文件,以寻找潜在的问题和异常情况。 5. 服务状态检查:检查系统上运行的各个服务的状态,如Web服务器、数据库服务器、邮件服务器等,以确保服务的正常运行。 6. 脚本执行时间监控:监控脚本的执行时间,以便评估脚本的性能和优化执行效率。 通过定期运行Linux系统巡检脚本,管理员可以及时了解系统的健康状态,并在出现问题时采取相应的措施,以保证系统的稳定性和安全性。此外,脚本还可以根据具体需求进行定制,添加或修改相应的检查项目,以满足不同场景的巡检要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值