我有两个问题:
远程机器是运行时创建的虚拟机,我只有它们的 IP。所以,我不能事先在这些机器中放置一个脚本文件并从我的机器上执行它们。
最佳答案
您可以使用 ssh 执行此操作,例如:
#!/bin/bash
USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done
您可以将
StrictHostKeyChecking=no
选项添加到 ssh:ssh -o StrictHostKeyChecking=no -l username hostname "pwd; ls"
这将 disable the host key check 并自动将主机 key 添加到已知主机列表中。如果您不想将主机添加到已知主机文件中,请添加选项
-o UserKnownHostsFile=/dev/null
。请注意,此 禁用某些安全检查 ,例如防止中间人攻击。因此,它不应应用于安全敏感的环境中。
关于linux - 写一个shell脚本ssh到远程机器并执行命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13928116/