我想运行一个使用SSH的shell脚本,该脚本从其他计算机获取资源,而脚本位于某个其他计算机上,并且都位于同一网络中。我不想将资源复制到本地机器。如何在一台机器上使用资源(.txt文件)和另一台机器上的脚本通过ssh运行shell脚本?
注:shell脚本需要.txt文件作为输入
我想运行一个使用SSH的shell脚本,该脚本从其他计算机获取资源,而脚本位于某个其他计算机上,并且都位于同一网络中。我不想将资源复制到本地机器。如何在一台机器上使用资源(.txt文件)和另一台机器上的脚本通过ssh运行shell脚本?
注:shell脚本需要.txt文件作为输入
如果您对Server1和file.txt的Server2上script.sh,您可以通过ssh到server1进行连接,然后执行:
[[email protected]]$ ssh [email protected] "cd mydir && cat file.txt" | ./script.sh
如果你的脚本是在机器A,你不能在机器B上运行,而不复制它。首先,在复制脚本到计算机B上使用scp
[[email protected]]$ scp /path/to/script [email protected]:/home/user/path
然后,只需运行该脚本
[[email protected]]$ ssh [email protected] "/home/user/path/script"
如果你给可执行权限的脚本,这将工作。
OR
试试这个..
<hostA_shell_prompt>$ ssh [email protected] "ls -la"
那会提示你输入密码,除非你复制你的hostA的用户的公钥authorized_keys文件在用户的.ssh的的家目录。这将允许进行无密码身份验证(如果在ssh服务器的配置中作为身份验证方法接受)
我不完全理解您的问题。其他答案给了“如何运行远程脚本?”
但我认为问题是远程脚本已采取远程文件,甚至我不知道使用ssh这个
sshfs
。sshfs
有点大的程序。
所以远程脚本必须采取文本文件作为输入一些其他远程计算机。对? – sujin
@ mario23请编辑您的问题以添加评论中的信息。 – guntbert