galaxy 不同服务器上远程调用工具
1、本地服务器将工具代码拷贝到GPU服务器执行,并返回结果文件
主要问题:远程服务器上工具是否执行完毕,生成了结果文件需要判断。
(1)方法1
在远程服务器上放检测生成文件的脚本,如果检测到生成文件,则将结果文件取回本地服务器。这种情况下允许本地服务器上次工具代码到远程服务器上执行,并生成结果文件。由远程服务器脚本判断文件生成情况。本地服务器不断循环调用结果文件检测脚本命令,直到接收到结果文件生成信号,则去远程服务器上取回文件。
(2)方法2
在远程服务器上启动服务,监听本地指令。这种情况下远程服务器上的程序不能修改,必须是固定的。每次远程服务器接收到本地服务器发送的指令,开始执行工具代码,运行结束后将计算结果文件返回本地服务器。
方法1代码:
远程调用代码:
其中while 部分是判断远程服务器上是否生成结果文件的命令部分,本地执行代码。其中远程服务器上 执行两种脚本search_file.sh 和search_file.py中的任何一种均可实现文件判断。
search_file.sh代码:
先贴上错误代码:
报错:../search_file.sh: line 4: [!: command not found
因为方括号和!之间应该空格,最后右括号和file之间也需要空格
$file可以用引号,也可以不用,但是绝对不能用单引号
正确代码:
或者:
search_file.py代码: