По сути, я хочу построить график использования памяти с каждым именем пользователя в качестве заголовка с течением времени. Я бы установил этот скрипт как задание cron, чтобы создать график, показывающий использование памяти определенными именами пользователей.
Как я могу отобразить процент использования памяти в зависимости от пользователя?
Ось Y должна быть% MEM, ось X должна быть время / дата
Я пытался сделать это с gnuplot, но не получилось.
Данные, которые я хочу представить на графике:
for USER in $(ps haux | awk '{print $1}' | sort -u); do ps haux | awk -v user=$USER '$1 ~ user { sum += $4} END { print user, sum; }'; done
Пример вывода:
102 0
avahi 0
colord 0
daemon 0
savvas 16.6
miredo 0
nobody 0
postfix 0
root 1.3
rtkit 0
syslog 0
whoopsie 0
Последний скрипт gnuplot, который я использовал:
set term png small size 800,600
set output "mem-graph.png"
set ylabel "%MEM"
set xlabel "Time"
set xtics nomirror
set ytics nomirror
set xrange [0:*]
set key autotitle columnheader
plot "mem.log" using 2 title columnhead(1) with lines
Сценарий, который я использую для построения графика:
#!/bin/bash
rm mem.log
while true
do
for USER in $(ps haux | awk '{print $1}' | sort -u); do ps haux | awk -v user=$USER '$1 ~ user { sum += $4} END { print user, sum; }'; done >> mem.log
gnuplot gnuplot.script
sleep 10
done