LINUX.ORG.RU

обновление значений в файле, bash

 , , , ,


0

1

Всем привет! Пытаюсь сколхозить нечто вроде сборщика статистики postfix, и отображения статистики в графике, для этого вооружился pflogsumm и zabbix. Из вывода pflogsumm извлекаю нужные значения, передаю их в заббикс, вроде все ок. Однако pflogsumm делает статистику за день, и сразу записывает текущие (максимальные значения). Таким образом получается, что если для какого-то значения не было изменений, например, 3 rejected в 5 утра, то и в 05:05, и в 06:10 в графике будет указано всё те же 3 rejected.

Предполагаю, что нужно какое-то сравнение строк в нужных местах. Однако, как провернуть это, не могу представить. Кто-то может подсказать верное направление?

примерный вывод pflogsumm, собираю по крону каждые 5мин

Grand Totals
------------
messages

    302   received
      9   delivered
      0   forwarded
      3   deferred  (88  deferrals)
    574   bounced
      0   rejected (0%)
      0   reject warnings
      0   held
      0   discarded (0%)

 209133   bytes received
   6024   bytes delivered
      6   senders
      5   sending hosts/domains
      1   recipients
      1   recipient hosts/domains


Per-Day Traffic Summary
-----------------------
    date          received  delivered   deferred    bounced     rejected
    --------------------------------------------------------------------
    Aug 26 2018         1          1          0          1
    Aug 27 2018       110          2         12        211
    Aug 28 2018       181          2         22        356
    Aug 29 2018         4          1         20          2
    Aug 30 2018         4          2         21          2
    Aug 31 2018         2          1         13          2

Per-Hour Traffic Daily Average
------------------------------
    time          received  delivered   deferred    bounced     rejected
    --------------------------------------------------------------------
    0000-0100           2          0          1          4          0
    0100-0200           2          0          1          4          0
    0200-0300           2          0          1          4          0
    0300-0400           2          0          1          4          0
    0400-0500           2          0          1          4          0
    0500-0600           2          0          1          4          0
    0600-0700           4          1          1          6          0
    0700-0800           2          0          1          4          0
    0800-0900           2          0          1          4          0
    0900-1000           2          0          1          4          0
    1000-1100           3          0          1          4          0
    1100-1200           2          0          1          4          0
    1200-1300           2          0          1          4          0
    1300-1400           2          0          1          4          0
    1400-1500           2          0          1          3          0
    1500-1600           2          0          1          3          0
    1600-1700           2          0          1          4          0
    1700-1800           2          0          1          4          0
    1800-1900           2          0          1          4          0
    1900-2000           2          0          1          4          0
    2000-2100           2          0          1          4          0
    2100-2200           2          0          1          4          0
    2200-2300           2          0          1          4          0
    2300-2400           2          0          1          4          0

smtp delivery failures: none

Fatal Errors: none

Panics: none

Master daemon messages: none

Чем дергаю данные в zabbix сейчас

UserParameter=postfix.bytes.received,grep "bytes received" /tmp/postfix_stat_temp | awk '{print $1}'
UserParameter=postfix.bytes.delivered,grep "bytes delivered" /tmp/postfix_stat_temp | awk '{print $1}'
UserParameter=postfix.received.count,grep -m 1 'received' /tmp/postfix_stat_temp | awk '{print $1}'
UserParameter=postfix.delivered.count,grep -m 1 'delivered' /tmp/postfix_stat_temp | awk '{print $1}'

Таким образом получается, что если для какого-то значения не было изменений, например, 3 rejected в 5 утра, то и в 05:05, и в 06:10 в графике будет указано всё те же 3 rejected.

А сколько должно быть?

shell-script ★★★★★ ()
Ответ на: комментарий от shell-script

в общей статистике и должно быть 3, но в график zabbix должно отдаться только следующая разница: новое значение - старое значение = <...>, наверное. Ведь заббикс проверяет, допустим, каждые 6 минут, данные из файла, созданного в pflogsumm.

Aborigen1020 ()