sudo apt-get updatesudo apt-get install sysstat
vi /root/system_monitor.sh
#!/bin/bash
# 获取CPU使用率和负载
cpu_usage=$(top -bn1 | grep "Cpu(s)" | \
sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
awk '{print 100 - $1}')
cpu_load=$(cat /proc/loadavg | awk '{print$1 " " $2 " "$3}')
# 获取磁盘利用率
disk_usage=$(df -h | grep '/dev/sd' | awk '{print$5}')
# 获取磁盘IO负载
disk_io=$(iostat | grep '^Device' | \
awk '{print $1,$2, $3,$4, $5,$6, $7}')
# 获取内存利用率
memory_usage=$(free | grep Mem | awk '{print$3/$2 * 100.0}')
# 获取TCP连接状态
tcp_connections=$(netstat -antp | grep ESTABLISHED | wc -l)
# 获取网络流量
network_traffic=$(cat /proc/net/dev | grep eth0 | awk '{print$2, $10}')
# 分析CPU和内存占用率高的前10个进程
cpu_top10=$(ps -eo %cpu,%mem,comm --sort=-%cpu | head -n 11)
memory_top10=$(ps -eo %cpu,%mem,comm --sort=-%mem | head -n 11)
# 输出结果
echo "CPU Usage: $cpu_usage%"
echo "CPU Load: $cpu_load"
echo "Disk Usage:"
echo "$disk_usage"
echo "Disk I/O:"
echo "$disk_io"
echo "Memory Usage: $memory_usage%"
echo "TCP Connections: $tcp_connections"
echo "Network Traffic (Rx/Tx): $network_traffic"
echo "Top 10 CPU consuming processes:"
echo "$cpu_top10"
echo "Top 10 Memory consuming processes:"
echo "$memory_top10"
chmod +x /root/system_monitor.shbash /root/system_monitor.sh
免责声明:本站内容均来自第三方商家提供。我们不对内容的准确性、完整性和可靠性承担任何责任,请自行核实相关信息的真实性和有效性。
相关标签:
Linux服务器 Linux命令 Linux系统 IT技术分享