我想运行一个shell脚本在远程linux机器上执行一个二进制文件。二进制文件和shell脚本都在我的本地窗口机器上。有什么办法通过我可以通过命令行工具直接从窗口运行二进制到远程机器,如PLINK?从本地窗口运行shell脚本到远程linux服务器?
我不想把二进制文件和脚本放到我希望它们运行的所有远程Linux机器上,而是我想运行实际调用二进制文件的shell脚本并执行期望的功能直接通过我的本地机器。
我想运行一个shell脚本在远程linux机器上执行一个二进制文件。二进制文件和shell脚本都在我的本地窗口机器上。有什么办法通过我可以通过命令行工具直接从窗口运行二进制到远程机器,如PLINK?从本地窗口运行shell脚本到远程linux服务器?
我不想把二进制文件和脚本放到我希望它们运行的所有远程Linux机器上,而是我想运行实际调用二进制文件的shell脚本并执行期望的功能直接通过我的本地机器。
您可以只用通过ssh管道进行远程运行shell脚本:(或任何窗户/砰砰当量)
cat my_script.sh | ssh -T my_server
但是,你不能运行的二进制远程通过管道,该文件将不得不存在于远程服务器上。
scp my_binary my_server:/tmp
cat my_script.sh | ssh -T my_server
然后就是有你的脚本运行:您可以从您的Windows机器上的文件推到一个已知位置的远程服务器上,然后编辑脚本,以期望在文件中的位置存在这样做二进制:
/tmp/my_binary
或者你可以编写脚本,以便它拉从一个中心位置在那里你收留了它的二进制文件:
wget -O /tmp/my_binary http://my_fileserver/my_binary
/tmp/my_binary
注意,如果SHEL l脚本除了调用二进制文件外不会执行任何其他操作,那么您不需要它。你可以直接通过ssh发送命令:
ssh -T my_server "cd /tmp && wget http://my_fileserver/my_binary && ./my_binary"
在执行之前,您必须将二进制文件复制到远程Linux机器中。但是,在运行该程序之前,您可以在使用sftp将二进制程序传输到临时目录下的Windows计算机上运行脚本,因此不需要手动设置。
那么每次我的脚本运行时,它会问的登录凭证呢? –
如果您不希望每次都提示,则可以使用没有密码的SSH密钥。 –
好吧是有道理..谢谢你的帮助。 –