Shell脚本:读取输出以运行下一个命令

时间:2015-01-15 08:30:25

标签: linux bash shell unix scripting

我正在尝试运行此功能但仍未获得输出。不知道我错了。 首先脚本应该登录到服务器
第二个命令是“netstat -tulpun | grep -i port(端口和服务器列表在同一个文件中)
3这里可能得到3到4个输出,但我只需要25个PID输出而不是其他

#!/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  

更新了所需的输出

Server1的
港口1311
root 8063 8062 0 2014? 00:08:06 / opt / dm_cd -run

=====
Server2上
港口1311
root 6844 6843 0 2014? 00:20:22 / etc / bin / linux / ds -run

=====
Server3的
港口8000 applmgr 1505 4215 0 2014? 00:05:44 / app / Apache / bin / httpd -d

1 个答案:

答案 0 :(得分:0)

不需要的输出行可能是由于所需的PID出现在ps -ef输出的其他列(PPID,CMD)中或作为另一个PID的一部分。将ps -ef替换为ps -fp%以纠正它。

相关问题