Хочешь строить графики без excel и браузеров? Bash +
gnuplot дают способ визуализировать логи прямо из терминала.Рассмотрим: у нас есть csv лог доступности хостов, созданный скриптом мониторинга:
timestamp,host,status,latency_ms
2025-08-09 12:30:01,8.8.8.8,UP,24.1
2025-08-09 12:31:01,8.8.8.8,UP,25.4
2025-08-09 12:32:01,8.8.8.8,DOWN,0
...
Наша цель: Построить график пинга по времени; сохранить его в png; все сделать из одного bash-скрипта
🛠 Скрипт генерации графика
#!/bin/bash
INPUT="ping_log.csv"
OUTPUT="latency_plot.png"
HOST="8.8.8.8"
# Отфильтровать строки для нужного хоста и подготовить данные
awk -F',' -v host="$HOST" '
$2 == host && $3 == "UP" {
print $1, $4
}
' "$INPUT" > temp_data.dat
# Сгенерировать график
gnuplot <<EOF
set terminal png size 900,300
set output "$OUTPUT"
set title "Latency for $HOST"
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set format x "%H:%M"
set xlabel "Time"
set ylabel "Latency (ms)"
set grid
plot "temp_data.dat" using 1:2 with linespoints title "Ping latency"
EOF
echo "График сохранен в $OUTPUT"
Если добавить реальный cron - будет наглядная история
🌟 Советы
Можно использовать gnuplot с другими логами: нагрузка CPU, объемы логов, системные метрики;
Можно строить сразу несколько графиков: plot ... title "A", ... title "B";
Поддерживается SVG, PDF, терминал
BashTex 📱 #bash #utils