![伪交互式 ssh 脚本](https://linux22.com/image/92630/%E4%BC%AA%E4%BA%A4%E4%BA%92%E5%BC%8F%20ssh%20%E8%84%9A%E6%9C%AC.png)
我需要运行一个脚本,该脚本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
该行部分的数字(您可能需要编辑它,除非格式恰好就是这样) - 第四行连接到远程服务器以杀死指定的客户端