嗨,我想从远程计算机收集一些有关进程的信息
然后杀死进程。
我使用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/