我想要一个脚本,SSH到远程服务器,然后运行在我的本地计算机上的脚本,然后将输出存储在本地计算机上
期望脚本ssh到远程服务器:
#!/usr/bin/expect -f set Timeout 2 set IPaddress 10.118.137.78 set Username "username" set Password "password" spawn ssh $Username@$IPaddress expect "ssword:" send "$Password\r"
脚本在远程机器上运行并收集数据:
#!/bin/sh for serveraddress in `cat list.out` do "seeisso $serveraddress | grep -E -i ' os |proddropdown'" done >> getos
===不知道如何:1.结合两者并得到结果。 2在期望的脚本中它不占用\ r并返回到换行符。
快速样品
#!/usr/bin/expect -f set timeout -1 set Username "user" set password "pass" set ipaddress "host" set script "script-name" spawn $env(SHELL) send -- "ssh $Username@$ipaddress $script\r" expect "assword: " send -- "$password\r" send -- "exit\r" expect eof
这将工作在远程执行脚本。 我没有太多的玩具,但完成后,你必须按Ctrl + C来退出预期。 在这一点上,我会设置一个小型的环境和一个更大的木偶或东西来pipe理它的ssh密钥然后更大的单一login可能kerberos去。