Как найти процесс с наибольшим количеством TCP-сокетов, который в данный момент запущен с помощью bash?
Я хотел бы вывести только имя процесса
решение1
Если вас интересуют только сокеты TCP, то ответом будет lsof +c 0 -i tcp, в противном случае вам необходимо расширить параметры lsof, чтобы включить другие типы сокетов.
ps -ef | pgrep -lf `lsof +c 0 -i tcp | awk '{print $1}' | sort | uniq -c | sort -n | tail -1 | awk '{print $2}'` | cut -d' ' -f2 | uniq | sed -e 's/^.*\///'
Андрей
решение2
# ps -p $(netstat -tnp|awk '$6=="ESTABLISHED" {split($7,a,"/"); print a[1]}' | sort | uniq -c | sort -r | head -n 1 | awk '{print $2}') -o comm=
skype