我想使用SSH运行shell脚本,该脚本从其他计算机获取资源,而脚本位于其他计算机上,所有这些都位于同一网络上。我不想将资源复制到本地计算机。
注意:shell脚本将.txt文件作为输入
答案 0 :(得分:2)
试试这个:
ssh USER_NAME@HOST_ADDRESS "BASH_SCRIPT_FILE_PATH"
您需要在需要时提供密码。
答案 1 :(得分:1)
如果server1上有script.sh,server2上有file.txt,则可以通过ssh连接到server1,然后执行:
[user@server1]$ ssh user@server2 "cd mydir && cat file.txt" | ./script.sh
答案 2 :(得分:0)
如果您的脚本位于计算机A中,则无法在计算机B上运行该脚本而不将其复制。首先,使用scp
将脚本复制到Machine B.[user@machineA]$ scp /path/to/script user@machineB:/home/user/path
然后,只需运行脚本
[user@machineA]$ ssh user@machineB "/home/user/path/script"
如果您已为脚本提供了可执行权限,则此功能将起作用。
OR
试试这个......
<hostA_shell_prompt>$ ssh user@hostB "ls -la"
除非您已将hostA用户的公钥复制到用户.ssh目录主页上的authorized_keys文件,否则会提示您输入密码。这将允许无密码身份验证(如果在ssh服务器的配置上被接受为auth方法)
答案 3 :(得分:0)
我不完全理解你的问题。其他答案给出了“如何运行远程脚本?”
但我认为问题是远程脚本必须采取远程文件,即使我不确定这个
sshfs
。sshfs
有点大的程序。