以下是一个可用于监控 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 秒再次执行,以减少对系统资源的压力。您还可以根据要求修改间隔时间。