searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

linux操作系统监控脚本

2025-03-13 19:22:17
0
0

#!/bin/bash

# 配置参数
LOG_FILE="/var/log/system_monitor.log"
CPU_THRESHOLD=80
MEMORY_THRESHOLD=80
DISK_THRESHOLD=80
EMAIL="your_email@example.com"

# 检查并创建日志文件
if [ ! -f "$LOG_FILE" ]; then
  touch "$LOG_FILE"
fi

# 记录日志函数
log() {
  echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOG_FILE"
}

# 检查CPU使用率
check_cpu() {
  CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
  if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
    log "CPU usage is high: $CPU_USAGE%"
    echo "CPU usage is high: $CPU_USAGE%" | mail -s "CPU Usage Alert" "$EMAIL"
  fi
}

# 检查内存使用率
check_memory() {
  MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
  if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
    log "Memory usage is high: $MEMORY_USAGE%"
    echo "Memory usage is high: $MEMORY_USAGE%" | mail -s "Memory Usage Alert" "$EMAIL"
  fi
}

# 检查磁盘使用率
check_disk() {
  DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
  if (( $DISK_USAGE > $DISK_THRESHOLD )); then
    log "Disk usage is high: $DISK_USAGE%"
    echo "Disk usage is high: $DISK_USAGE%" | mail -s "Disk Usage Alert" "$EMAIL"
  fi
}

# 主循环
while true; do
  check_cpu
  check_memory
  check_disk
  sleep 60
done

 

0条评论
0 / 1000
王****际
180文章数
2粉丝数
王****际
180 文章 | 2 粉丝
原创

linux操作系统监控脚本

2025-03-13 19:22:17
0
0

#!/bin/bash

# 配置参数
LOG_FILE="/var/log/system_monitor.log"
CPU_THRESHOLD=80
MEMORY_THRESHOLD=80
DISK_THRESHOLD=80
EMAIL="your_email@example.com"

# 检查并创建日志文件
if [ ! -f "$LOG_FILE" ]; then
  touch "$LOG_FILE"
fi

# 记录日志函数
log() {
  echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" >> "$LOG_FILE"
}

# 检查CPU使用率
check_cpu() {
  CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
  if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
    log "CPU usage is high: $CPU_USAGE%"
    echo "CPU usage is high: $CPU_USAGE%" | mail -s "CPU Usage Alert" "$EMAIL"
  fi
}

# 检查内存使用率
check_memory() {
  MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
  if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
    log "Memory usage is high: $MEMORY_USAGE%"
    echo "Memory usage is high: $MEMORY_USAGE%" | mail -s "Memory Usage Alert" "$EMAIL"
  fi
}

# 检查磁盘使用率
check_disk() {
  DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
  if (( $DISK_USAGE > $DISK_THRESHOLD )); then
    log "Disk usage is high: $DISK_USAGE%"
    echo "Disk usage is high: $DISK_USAGE%" | mail -s "Disk Usage Alert" "$EMAIL"
  fi
}

# 主循环
while true; do
  check_cpu
  check_memory
  check_disk
  sleep 60
done

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0