伪交互式 ssh 脚本

伪交互式 ssh 脚本

我需要运行一个脚本,该脚本ssh连接到本地网络上的另一台计算机(我已将 RSA 密钥与它们配对),ssh登录后,我需要运行命令并在本地脚本中获取命令的结果(以解析),然后运行根据第一个命令的一些信息构建的另一个命令。

这是我想要做的一步一步的说明:

  • ssh进入运行 FileMaker Server 11 的计算机
  • 获取客户列表
  • 寻找某个客户
  • 如果该客户端已登录,则从列表中获取其 ID
  • 向 FileMaker 服务器发送断开 ID 命令
  • 退出。

希望这不是太乱码。

答案1

就像是:

#!/bin/sh
clients=$(ssh server "get-list-of-clients")
myclient=$(echo $clients | grep my-client-name)
myclientid=$(echo $myclient | sed -e 's/^.*id=\([0-9]*\).*$//')
ssh server "kill-client-with-id $myclientid"
  • 第一行连接到服务器并请求客户端列表(当然,您将用正确的服务器名称和命令替换以获取客户端列表)
  • 第二行只提取您想要的客户
  • 第三行仅提取您想要使用的客户端ID sed(1),仅保留 id=1234该行部分的数字(您可能需要编辑它,除非格式恰好就是这样)
  • 第四行连接到远程服务器以杀死指定的客户端

相关内容