几个常用的Linux操作系统监控脚本
原创几个常用的Linux操作系统监控脚本
随着Linux系统的广泛应用,系统的稳定性和性能监控变得尤为重要。以下是一些常用的Linux操作系统监控脚本,可以帮助管理员实时监控系统的资源使用情况,及时发现并解决问题。
1. CPU监控脚本
CPU是计算机系统的核心部件,监控CPU的使用情况对于确保系统稳定运行至关重要。以下是一个明了的CPU监控脚本:
bash
#!/bin/bash
# 获取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
# 输出CPU使用率
echo "CPU使用率: $cpu_usage%"
# 如果CPU使用率超过90%,则发送报警信息
if [ "$cpu_usage" -gt 90 ]; then
echo "警告:CPU使用率过高,已大致有$cpu_usage%" | mail -s "CPU使用率过高" admin@example.com
fi
该脚本通过`top`命令获取CPU使用率,并使用`awk`进行处理。如果CPU使用率超过90%,则通过`mail`命令发送报警信息。
2. 内存监控脚本
内存是计算机系统中另一个重要的资源,监控内存使用情况可以帮助管理员及时发现内存泄漏等问题。以下是一个明了的内存监控脚本:
bash
#!/bin/bash
# 获取内存使用率
memory_usage=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 输出内存使用率
echo "内存使用率: $memory_usage%"
# 如果内存使用率超过80%,则发送报警信息
if [ "$memory_usage" -gt 80 ]; then
echo "警告:内存使用率过高,已大致有$memory_usage%" | mail -s "内存使用率过高" admin@example.com
fi
该脚本通过`free`命令获取内存使用率,并使用`awk`进行处理。如果内存使用率超过80%,则通过`mail`命令发送报警信息。
3. 磁盘监控脚本
磁盘空间不足或许促使系统性能下降甚至崩溃,所以监控磁盘空间使用情况非常重要。以下是一个明了的磁盘监控脚本:
bash
#!/bin/bash
# 获取磁盘使用率
disk_usage=$(df -h | grep "/dev/sda1" | awk '{print $5}')
# 输出磁盘使用率
echo "磁盘使用率: $disk_usage"
# 如果磁盘使用率超过90%,则发送报警信息
if [[ "$disk_usage" == *"90%*" ]]; then
echo "警告:磁盘使用率过高,已大致有90%" | mail -s "磁盘使用率过高" admin@example.com
fi
该脚本通过`df`命令获取指定磁盘的使用率,并使用`awk`进行处理。如果磁盘使用率超过90%,则通过`mail`命令发送报警信息。
4. 网络监控脚本
网络是现代企业不可或缺的一部分,监控网络流量可以帮助管理员及时发现网络问题。以下是一个明了的网络监控脚本:
bash
#!/bin/bash
# 获取网络流量
rx_bytes=$(cat /sys/class/net/eth0/statistics/rx_bytes)
tx_bytes=$(cat /sys/class/net/eth0/statistics/tx_bytes)
# 计算网络流量变化
rx_diff=$((rx_bytes - $rx_last_bytes))
tx_diff=$((tx_bytes - $tx_last_bytes))
# 输出网络流量变化
echo "网络流量变化:$rx_diff字节接收,$tx_diff字节发送"
# 如果网络流量变化超过阈值,则发送报警信息
if [ "$rx_diff" -gt 1000000 ] || [ "$tx_diff" -gt 1000000 ]; then
echo "警告:网络流量异常,接收流量超过$rx_diff字节,发送流量超过$tx_diff字节" | mail -s "网络流量异常" admin@example.com
fi
# 更新上次网络流量值
rx_last_bytes=$rx_bytes
tx_last_bytes=$tx_bytes
该脚本通过读取网络接口的统计信息来获取网络流量变化。如果网络流量变化超过阈值,则通过`mail`命令发送报警信息。
5. 系统日志监控脚本
系统日志记录了系统的运行状态,监控系统日志可以帮助管理员及时发现异常情况。以下是一个明了的系统日志监控脚本:
bash
#!/bin/bash
# 检查系统日志中的差错信息
log_file="/var/log/syslog"
error_keyword="error"
# 查找包含差错信息的行
error_lines=$(grep -n "$error_keyword" $log_file)
# 如果存在差错信息,则发送报警信息
if [ -