2015-01-15 2 views
1

Я пытаюсь запустить это, но все еще не получаю вывод. Не знаю, был ли я неправ. Первого сценарий должен войти на сервер
второй команды "netstat -tulpun | grep -i port (порт & списка серверов находится в том же файл)
третьим могут получить от 3 до 4 выход здесь, но мне нужен только 25 PID не выход остальныхShell Script: прочитайте вывод для запуска следующей команды

#!/bin/bash 
while read -r -u10 server port line 
do 
echo ========== server: "$server" port: "$port" ========== 
    ssh $line "netstat -tulpunt | grep -E \"\b$port\b\"" | awk '{print $7}' | grep '/' | awk -F '/' '{print $1}' | xargs -I % bash -c 'echo Port % && ps -ef | grep % && echo ' | grep -v grep 
done 10< demo 

Обновлено требуется выход

Сервер1
Порт 1311
корень 8063 8062 0 2014? 00:08:06/опт/dm_cd -run

=====
Сервер2
Порт 1311
корень 6844 6843 0 2014? 00:20:22/и т.д./бен/Linux/DS -run

=====
Server3
Порт 8000
applmgr 1505 4215 0 2014? 00:05:44/app/Apache/bin/httpd -d

+1

Я предполагаю, что проблема в том, что запутанная командная строка запускается на удаленном хосте. Пожалуйста, покажите вывод команды netstat, которую эта грязная командная строка должна проанализировать и ожидаемый результат. – Jdamian

+0

, пожалуйста, уточните, что я добавил запрос в вопрос – Poo

+0

. Ваше регулярное выражение '\" \ b $ port \ b \ "' выглядит странно. Возможно, вы должны изменить его на нечто вроде '': $ port "'. Тогда кажется, что в выводе нет 7 столбцов. Не проверял дальше. Проводили ли вы его шаг за шагом, добавляя одну трубу? – user3132194

ответ

0

Нежелательные выходные линии, вероятно, связаны с необходимым ПИД-кодом, появляющимся в других столбцах выхода ps -ef (PPID, CMD) или как часть другого PID. Замените ps -ef на ps -fp%, чтобы исправить это.

Смежные вопросы