3

我想使用 SSH 运行一个 shell 脚本,它从其他机器获取资源,而脚本在其他机器上,都在同一个网络上。我不想将资源复制到本地计算机。

注意:shell 脚本将 .txt 文件作为输入

4

4 回答 4

1

试试这个:

 ssh USER_NAME@HOST_ADDRESS "BASH_SCRIPT_FILE_PATH"

您需要在需要时提供密码。

于 2014-01-23T12:53:43.583 回答
1

如果 server1 上有 script.sh,server2 上有 file.txt,则可以通过 ssh 连接到 server1,然后执行以下操作:

[user@server1]$ ssh user@server2 "cd mydir && cat file.txt" | ./script.sh
于 2014-01-23T12:57:12.590 回答
0

如果您的脚本在机器 A 中,则您无法在机器 B 上运行它而不复制它。首先,使用 scp 将脚本复制到机器 B

[user@machineA]$ scp /path/to/script user@machineB:/home/user/path

然后,只需运行脚本

[user@machineA]$ ssh user@machineB "/home/user/path/script"

如果您已授予脚本可执行权限,这将起作用。

或者

试试这个。。

<hostA_shell_prompt>$ ssh user@hostB "ls -la"

这将提示您输入密码,除非您已将 hostA 用户的公钥复制到用户 .ssh 目录主目录上的 authorized_keys 文件中。这将允许无密码身份验证(如果被接受为 ssh 服务器配置上的身份验证方法)

于 2014-01-23T13:05:33.513 回答
0

我不完全理解你的问题。其他答案给出了“如何运行远程脚本?”

但我认为问题是远程脚本必须获取远程文件,即使我不确定

  1. 使用 ssh 登录远程 PC。
  2. sshfs如果未安装,请安装。
  3. 然后将包含您要在脚本中使用的文件的其他远程计算机目录挂载到本地目录。这可以使用sshfs
  4. 然后使用本地安装目录中的文件运行脚本
  5. 完成后卸载目录。

程序有点大。

使用 sshfs 挂载远程目录

人 sshfs

于 2014-01-23T13:27:11.850 回答