как получить только слушающие порты процесса в linux

1

Я пробовал разные команды netstat, lsof, но мое требование: я хочу передать порт прослушивания, говорят, что процесс x запущен на chl21000303.sesson.net: 32456.

Мне нужна команда linux, которая читает только порт 32456 и хочет передать его в java, как java -jar runs.jar port.

Поэтому мне нужны некоторые команды для получения только работающего порта или порта прослушивания. Если я попробую команды netstat вроде этого, я скажу около 20 строк портов.

  • 0
    В том числе "пожалуйста помогите" и спасибо в посте неуместно. без отвлекающих факторов, без чата (читай помощь → тур )
Теги:

2 ответа

0

Вы можете сделать это в сценарии оболочки

var='"netstat -atn | grep LISTEN | awk {print $4}"'
for x in $var
do
    port='echo $x | awk -F':' '{print $2}'';
    echo $port;
done

У вас есть номер порта в $ port, который вы можете передать в свой java-скрипт

0
netstat | awk '{print $4}' | sed -nr 's/.*:([0-9]+)/\1/p' | xargs java -jar runs.jar

Я не совсем понимаю вопрос. Вышеупомянутый будет включать все номера портов в аргументы вашего java файла

Если вы уверены, что это будет на chl21000303.sesson.net, вы можете вместо этого сделать

netstat | awk '{print $4}' | sed -nr 's/chl21000303.sesson.net:([0-9]+)/\1/p' | xargs java -jar runs.jar

edit-

для полного завершения плохо дать краткий обзор того, что все делает.

netstat получает все соединения и подключает его к awk. awk получает 4-й столбец и передает его в sed. sed получает номер порта, используя регулярное выражение, и передает его в вашу java-программу в качестве аргументов

  • 0
    Спасибо за вашу помощь, я попробую это в понедельник в моем проекте и сообщу вам, если у меня возникнут какие-либо проблемы. Спасибо за ваш ценный ответ и помощь. Теперь не могли бы вы объяснить, как работает этот sed, и -nr и регулярное выражение, которое вы написали?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню