如何在一台机器上使用资源(.txt文件)在ssh上运行shell脚本,在另一台机器上运行脚本?

时间:2014-01-23 12:47:25

标签: linux ubuntu ssh server fedora

我想使用SSH运行shell脚本,该脚本从其他计算机获取资源,而脚本位于其他计算机上,所有这些都位于同一网络上。我不想将资源复制到本地计算机。

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

4 个答案:

答案 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)

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

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

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

    Mounting remote directory with sshfs

    man sshfs