2015-04-22 6 views
1

Я пытаюсь сделать график из моего stat.dat файла, содержащего:GNUPLOT Нелегальная день месяца

----system---- ----total-cpu-usage---- ------memory-usage----- -net/total- 
    time  |usr sys idl wai hiq siq| used buff cach free| recv send 
22-04 16:44:48| 0 0 100 0 0 0| 162M 57.1M 360M 3376M| 0  0 
22-04 16:44:58| 0 0 100 0 0 0| 161M 57.1M 360M 3377M| 180B 317B 

И у меня есть gnu.sh содержащий:

#!/usr/bin/gnuplot 
set terminal png 
set output "top.png" 
set title "CPU usage" 
set xlabel "time" 
set ylabel "percentage" 
set xdata time 
set timefmt "%d-%m %H:%M:%S" 
set format x "%H:%M" 
plot "stat.dat" using 1:3 title "system" with lines, \ 
"stat.dat" using 1:2 title "user" with lines, \ 
"stat.dat" using 1:4 title "idle" with lines 

Когда я бегу ГНУ файл I получите эту ошибку:

Could not find/open font when opening font "/usr/share/fonts/truetype/ttf-liberation/LiberationSans-Regular.ttf", using internal non-scalable font 
----system---- ----total-cpu-usage---- ------memory-usage----- -net/total... 
stat.dat:1:"./gnu.sh", line 12: illegal day of month 

Кто-нибудь знаком с этой ошибкой и любым раствором ион, который поможет?

ответ

1

При разборе первой строки вашего файла данных gnuplot встречает незаконный день месяца.

Прежде чем их разобрать, вы должны как-то пропустить первые две строки вашего файла данных. Используя версию 5.0 или 4.6.6, вы можете использовать новую опцию skip для достижения этой цели. Это пропускает число строк в начале файла данных без разбора их (в отличие от every, который может пропустить количество строк после разбора, который будет по-прежнему давать ошибку):

set xdata time 
set timefmt "%d-%m %H:%M:%S" 
set format x "%H:%M" 
set style data lines 
set border back 
plot "stat.dat" using 1:4 skip 2 lw 3 title "system", \ 
    "" using 1:3 skip 2 lw 3 title "user", \ 
    "" using 1:5 skip 2 lw 3 title "idle" 

Примечания также, что подсчет столбцов неверен. Дата содержит пробел, поэтому он учитывает два столбца, когда вы ссылаетесь на следующие значения.

С другой стороны, если у вас нет версии 5.0 или 4.6.6, вы можете использовать внешний инструмент, как tail пропустить первые две строки:

set xdata time 
set timefmt "%d-%m %H:%M:%S" 
set format x "%H:%M" 
set style data lines 
set border back 
plot "< tail -n +3 stat.dat" using 1:4 lw 3 title "system", \ 
    "" using 1:3 lw 3 title "user", \ 
    "" using 1:5 lw 3 title "idle" 
+0

Вы знаете, если это возможно, чтобы контролировать ФИД или один процесс с dstat? –

Смежные вопросы