galaxy 不同服务器上远程调用工具

1、本地服务器将工具代码拷贝到GPU服务器执行,并返回结果文件

主要问题:远程服务器上工具是否执行完毕,生成了结果文件需要判断。

(1)方法1

在远程服务器上放检测生成文件的脚本,如果检测到生成文件,则将结果文件取回本地服务器。这种情况下允许本地服务器上次工具代码到远程服务器上执行,并生成结果文件。由远程服务器脚本判断文件生成情况。本地服务器不断循环调用结果文件检测脚本命令,直到接收到结果文件生成信号,则去远程服务器上取回文件。

(2)方法2

在远程服务器上启动服务,监听本地指令。这种情况下远程服务器上的程序不能修改,必须是固定的。每次远程服务器接收到本地服务器发送的指令,开始执行工具代码,运行结束后将计算结果文件返回本地服务器。

方法1代码:

远程调用代码:

galaxy 不同服务器上远程调用工具

 galaxy 不同服务器上远程调用工具

 

其中while 部分是判断远程服务器上是否生成结果文件的命令部分,本地执行代码。其中远程服务器上 执行两种脚本search_file.sh 和search_file.py中的任何一种均可实现文件判断。

search_file.sh代码:

先贴上错误代码:

galaxy 不同服务器上远程调用工具

报错:../search_file.sh: line 4: [!: command not found

因为方括号和!之间应该空格,最后右括号和file之间也需要空格

$file可以用引号,也可以不用,但是绝对不能用单引号

正确代码:

galaxy 不同服务器上远程调用工具

或者:

galaxy 不同服务器上远程调用工具

search_file.py代码:

galaxy 不同服务器上远程调用工具