您好,我想从远程计算机收集一些有关进程的信息 然后,终止该进程。
我使用expect编写了一个脚本,我成功连接到远程机器 但我无法发送其他命令,例如“who”并获取输出:
#!/usr/bin/expect
spawn ssh -o StrictHostKeyChecking=no -o CheckHostIP=no aaa@1.2.4.5
expect "Password:"
send "aaa1"
interact
send "who\r"
有人可以建议一下吗? 基本上我对expect很陌生,所以我想这很简单,我可能错过了。
谢谢大家。
最佳答案
您不需要对此进行expect
。您需要基于 key 的 SSH 登录。您可以通过运行 ssh-copy-id aaa@1.2.4.5
一次进行设置来实现此目的,然后您应该能够运行:
ssh aaa@1.2.4.5 who
并且它不应该提示输入密码,因为它将使用您的 SSH key 。当然,如果您之前从未有过 SSH key ,则可能需要在 ssh-copy-id 之前运行 ssh-keygen 或类似命令。
关于linux - 使用expect后发送命令到远程机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912446/