【Shell脚本 6】日常巡检脚本-1

#!/bin/bash

# 检查系统负载
load=$(awk '{print $1}' /proc/loadavg)
cores=$(grep -c ^processor /proc/cpuinfo)
load_threshold=$(echo "scale=2; $cores * 0.7" | bc)
if [ "$(echo "$load > $load_threshold" | bc)" -ne 0 ]; then
  echo "系统负载超过 $load_threshold,请检查系统。"
fi

# 检查磁盘使用率
used=$(df -h / | awk 'NR==2{print $5}' | tr -d '%')
if [ "$used" -gt 90 ]; then
  echo "磁盘使用率超过 90%,请检查磁盘空间。"
fi

# 检查系统内存和交换空间使用情况
mem=$(free | awk 'NR==2{print $3/$2*100}')
swap=$(free | awk 'NR==4{print $3/$2*100}')
if [ "$mem" -gt 80 ]; then
  echo "系统内存使用率超过 80%,请检查内存。"
fi
if [ "$swap" -gt 20 ]; then
  echo "交换空间使用率超过 20%,请检查交换空间。"
fi

# 检查更新并升级系统
sudo apt-get update -qq > /dev/null
updates=$(apt list --upgradable 2>/dev/null | wc -l)
if [ "$updates" -gt 1 ]; then
  echo "发现 $updates 个可用更新,正在升级系统。"
  sudo apt-get upgrade -y -qq > /dev/null
fi

# 检查系统日志
errors=$(grep -i "error" /var/log/syslog | wc -l)
if [ "$errors" -gt 0 ]; then
  echo "发现 $errors 条错误日志,请检查系统日志。"
fi

该脚本将执行以下操作:

检查系统负载;
检查磁盘使用率;
检查系统内存和交换空间使用情况;
检查是否有更新可用,并在需要时更新;
检查系统日志。

你可能感兴趣的:(linux)