Как получить количество строк в текущую секунду?

Сначала получите PID процесса:

$ pgrep 

Тогда вы можете использовать pwdx:

$ pwdx 

Способ/procзаключался бы в проверке ссылки exeв каталоге, соответствующем pid.

Возьмем пример сupdate-notifier:

Найдите pid, в данном примере это 15421 :

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Найдите символическую ссылку:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'

Кредиты:https://askubuntu.com/a/49030/680673

0
15.10.2020, 11:58
2 ответа

Решение в реальном времени, как указано в исходном сообщении.

Сохраните следующий код как скрипт и сделайте его исполняемым:

#!/bin/bash

current_sec=0
while read line
do
    prev_sec=$current_sec
    current_sec=${line:0:8}
    if [ "$current_sec" == "$prev_sec" ]
    then
        line_count=$((line_count+1))
    else
        echo $prev_sec /// $line_count
        line_count=1
    fi
done

Затем запустите:

tcpdump -nn  port 5060  -i eth0 | grep 'xxx.xxx.xxx.xxx.5060: SIP: SIP/2.0 5' | saved_script.sh

Это будет напечатано в реальном времени:

13:29:50 /// 0
13:29:51 /// 4
13:29:52 /// 9
13:29:54 /// 2

Я недостаточно тестировал этот код, могут быть ошибки, но вы можете протестировать его самостоятельно.

2
18.03.2021, 22:57

Предположим, что файл отсортирован:

grep -oP "^[0-2][0-9]:[0-2][0-9]:[0-2][0-9]" inputfile | uniq -c

Возвращает количество записей за каждую целую секунду.

      3 11:10:03
      3 11:10:04
      1 11:10:06
      2 11:10:07
      2 11:10:08
0
18.03.2021, 22:57

Теги

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