如何在远程机器上运行多个脚本

如何在远程机器上运行多个脚本

我必须远程连接到网关(在 Linux 平台上工作),其中有几个可执行文件(signingModule.shtaxModule.sh)。现在我想在我的桌面上编写一个脚本,该脚本将连接到该网关并signingModule.shtaxModule.sh两个不同的终端上运行。

我写了下面的代码:

ssh [email protected] #to connect to gateway
sleep 5
cd /opt/swfiscal/signingModule #path of both modules
./signingModule #executable

但是通过此代码我可以连接我的网关,但连接到网关后什么也没有发生。

第二段代码:

source configPath # file where i have given path of both the modules(configPath is placed in local machine)
cd $FCM_SCRIPTS # variable in which i have stored the path of modules
ssh [email protected] 'sh -' < signingModule #to connect and run one module (signingModule is placed in remote machine)

我得到的输出是:source: configPath: file not found

请帮我解决这个问题。提前致谢。

笔记:

  1. 如果需要的话,我可以将我的文件复制粘贴到该网关。
  2. Gnome 终端或者任何其他替代方案均无法在我的网关上运行。
  3. 我必须在不同的终端中运行所有模块(签名和税收),因为我的其他应用程序只有当这两个模块启动时才会工作。所以为了使它们同时运行,我们必须在不同的选项卡或终端中运行它们。
  4. 我必须在本地机器上编写一个脚本,该脚本将运行位于远程网关的两个模块(签名和税务)。因此,我想在本地机器上运行该脚本,该脚本将访问网关的模块。

答案1

您收到的错误意味着该文件configPath不存在于您执行命令的文件夹中source configPath

假如说:

  • 文件configPath包含以下语句:
    #!/bin/bash
    export FCM_SCRIPTS=/path/on/remote/machine
    
  • 文件夹中/path/on/remote/machine有一个可执行文件signingModule
  • 文件configPath位于/path/on/local/machine文件夹中

如果这些假设是正确的,您应该在本地机器上创建一个简单的脚本/path/on/local/machine/remoteExecution.sh

#!/bin/bash
cd $FCM_SCRIPTS
./signingModule

然后尝试:

cd /path/on/local/machine 
ssh [email protected] 'bash -s' < <(cat configPath remoteExecution.sh)

其中-s选项表示从标准输入读取命令。

相关内容