【问题标题】:Script that changes commands as per the environment根据环境更改命令的脚本
【发布时间】:2020-06-02 20:00:04
【问题描述】:
while read -r -u10 server port line
do
  echo server: "$server" port: "$port"
  ssh -qn "$server" "netstat -tulpun | grep -E \"\b$port\b\""
  echo
done 10< demo

这个脚本会给你下面提到的输出,我可以对输出中的ID做ps -ef | grep 1505吗

server: Jan  port: 8000  
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      1505/httpd  

server: feb  port: 8000  
tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      1505/httpd

【问题讨论】:

  • 您应该将预期输出和实际输出放在一起,以了解现有代码中的差异或错误。
  • but having some issue - 有什么问题?你期待什么输出?
  • 所有输出打印在一起,两个命令之间没有任何间隙,并且有时某些主机不提供输出。

标签: linux bash shell ssh


【解决方案1】:

我不太确定您的问题是什么,但您可以稍微改进一下代码:

while read -r server port line
do  
  echo server: "$server" port: "$port"  
  ssh -qn "$server" "netstat -ntl | grep -E \"\b$port\b\""
  echo
done < demo

【讨论】:

  • 我只想在火灾中提到的所有服务器上运行 netstat 命令,有 2 列。 ssh 到服务器并使用相关服务器提到的端口运行 netstat 命令
  • 上面的代码会这样做......是的,我做到了,它在最后一行。
  • 上面的脚本只是给出了第一个主机输出
  • ssh 行不打印,不知道是什么原因
  • 查看更新,ssh读取stdin所以需要使用不同的文件描述符
猜你喜欢
  • 2012-09-11
  • 2013-12-04
  • 1970-01-01
  • 2021-07-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
  • 1970-01-01
  • 2021-07-14
相关资源
最近更新 更多