Сначала получите 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'
Решение в реальном времени, как указано в исходном сообщении.
Сохраните следующий код как скрипт и сделайте его исполняемым:
#!/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
Я недостаточно тестировал этот код, могут быть ошибки, но вы можете протестировать его самостоятельно.
Предположим, что файл отсортирован:
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