嗨,我想从远程计算机收集一些有关进程的信息
然后杀死进程。

我使用Expect编写了一个脚本,我成功连接到远程计算机
但我无法发送其他命令(例如“谁”)并获得输出:

#!/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。您需要基于密钥的SSH登录。您可以通过只运行一次ssh-copy-id aaa@1.2.4.5来实现此目的,然后再运行即可:

ssh aaa@1.2.4.5 who


而且它不应提示输入密码,因为它将使用您的SSH密钥。当然,如果您之前从未拥有过SSH密钥,则可能需要在ssh-copy-id之前运行ssh-keygen或类似命令。

关于linux - 使用Expect后将命令发送到远程计算机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23912446/

10-11 03:43
查看更多