Потеряны ли данные UDP при выполнении kill -HUP в rsyslog?

Раствор Баша.

#!/bin/bash
pa=0 ; s=0 ; 
while read a b ; do \
  if [ "$a" == "$pa" ] ; then \
    s=$(($s+$b)) ; 
   else 
    if [ "$pa" != 0 ] ; then \
      echo $pa $s ; 
    fi ; 
    pa=$a ; s=$b ; 
  fi ; 
done < <(cat j.txt | awk -F'|' '{printf("%s %s\n",$3,$6)}' | sort -n) 
echo $pa $s

Инициал. Предыд. А и СУММ

Сократите ввод в поля 3 и 6 и отсортируйте их по номеру

Цикл, пока поле 3 остается прежним, добавить поле 6 в SUM

Если поле 3 изменяется, но Предыдущее A не равно 0, вывести Предыдущее A и СУММ и повторно инициализировать Предыдущее А в а и СУММ в последнее прочитанное поле 6.

Вывод последнего предыдущего A и SUM.

Выход данного входа:

00788 1950
03361 2334
08385 650
08767 650
10234 945
28774 2689
30201 2984
34032 1389
43097 945
0
02.05.2020, 20:27
1 ответ

kill -HUPпосылает процессу сигнал HANGUP. Это не обязательно убивает процесс. Проверка справочной страницы гласит, что

Also, in v3 a full restart will be done in order to read changed configuration files. Note that this means a full rsyslogd restart is done. This has, among others, the consequence that TCP and other connections are torn down.

Значит, ваша дополнительная -заметка о TCP тоже не поможет. Поскольку UDP не требует установления соединения, вы все равно можете потерять часть. Но если пакет приходит в течение этого крошечного промежутка времени, вы можете получить ответ ICMP, говорящий, что порт не прослушивается, в зависимости от того, как настроены сервер/брандмауэры. Как отправляющее приложение будет обрабатывать этот ответ ICMP, вам также необходимо рассмотреть.

0
28.04.2021, 23:16

Теги

Похожие вопросы