以下是一个可用于监控 Linux 系统内存和 CPU 使用率并将其输出为日志的脚本:
while true
do
# 获取当前时间
timestamp=$(date +"%Y-%m-%d %T")
# 获取内存使用率
mem_used=$(free | awk 'NR==2{printf "%.2f\n", $3/$2*100}')
# 获取 CPU 使用率
cpu_used=$(mpstat 1 1 | awk '/Average:/ && $12 != 0{printf "%.2f\n", 100-$12}')
# 将结果输出到日志文件中
echo "$timestamp - Memory used: $mem_used% | CPU used: $cpu_used%" >> /var/log/system_monitor.log
# 等待 5 秒再次执行
sleep 5
done
此脚本使用 while true
循环来不断监控系统的内存和 CPU 使用率。在每次循环中,脚本获取当前时间、内存使用率和 CPU 使用率,并将这些数据输出到指定的日志文件中。
为了获得内存使用率,脚本使用了 free
命令并通过 awk
过滤出某些行并计算出已用内存占总内存的百分比。
为了获取 CPU 使用率,脚本使用了 mpstat
命令并再次使用 awk
过滤出平均值中的某些行,并将结果计算为使用 CPU 百分比。
脚本在每次完成循环后会等待 5 秒再次执行,以减少对系统资源的压力。您还可以根据要求修改间隔时间。