Linux shell脚本监控大全(Linux监控CPU、内存、磁盘、进程)
使用Linux shell脚本进行监控主要包括系统性能、资源使用情况和进程等方面的监控。
以下是几个不同场景的监控脚本示例。
监控CPU使用率:
#!/bin/bash
threshold=80
while true; do
cpu_usage=$(top -b -n1 | awk -v cpus=$(nproc) 'NR>7{s+=$9}END{print s/cpus}')
if (( $(echo "$cpu_usage > $threshold" | bc -l) )); then
echo "Warning: CPU usage is over ${threshold}%"
fi
sleep 10
done
监控内存使用率:
#!/bin/bash
threshold=80
while true; do
total_mem=$(free -m | awk 'NR==2{print $2}')
used_mem=$(free -m | awk 'NR==2{print $3}')
mem_usage=$(echo "scale=2; $used_mem*100/$total_mem" | bc)
if (( $(echo "$mem_usage > $threshold" | bc -l) )); then
echo "Warning: Memory usage is over ${threshold}%"
fi
sleep 10
done
监控磁盘使用率:
#!/bin/bash
threshold=80
while true; do
partitions=$(df -h | awk 'NR>1{print $1}')
for partition in $partitions; do
disk_usage=$(df -h | grep $partition | awk '{print $5}' | sed 's/%//')
if (( $disk_usage > $threshold )); then
echo "Warning: Disk usage for partition $partition is over ${threshold}%"
fi
done
sleep 10
done
监控特定进程:
#!/bin/bash
process_name="your_process_name"
interval=10
while true; do
if ! pgrep -x $process_name > /dev/null; then
echo "Warning: Process $process_name is not running"
fi
sleep $interval
done
注意:这些脚本只是简单的示例,在实际生产环境中,您可以根据您的实际需求进行修改和优化。
例如,您可以将警报写入日志文件或通过电子邮件发送,或者使用更高级的监控工具(如Nagios、Zabbix等)。
阅读剩余
THE END