在远程服务器Progress Openedge上连接并运行unix命令

时间:2018-02-19 09:45:20

标签: unix command remote-server openedge progress-4gl

我需要通过sftp 连接 远程服务器,然后 某些文件连接到那里。以下命令从终端开始我的工作:

sftp -P <port> user@remote_server
cd <target_dir_at_remote_server>
put <my_file_at_local_server>
quit

此处,第一行建立与远程服务器的连接,并在那里运行以下命令。 当我尝试使用os-command value(<commands>)unix value(<commands>)从Progress 4GL代码运行这些命令时, 所有命令都在本地服务器上运行 而不是远程服务器。 对代码示例的建议将受到高度赞赏。

2 个答案:

答案 0 :(得分:2)

我从来没有特意碰到这个,但我猜测Progress不会保留你的命令链的上下文。我建议这两个中的一个:

使用'|'在单个语句中管道它们如'ls -l |更多' 或者,如果这不起作用,

创建一个shell脚本并在本地保存文件,然后使用要作为参数上传的文件位置和名称运行该脚本,最后删除本地文件。

答案 1 :(得分:1)

从OS-COMMAND角度来看,这些不是单独的“命令”。 “sftp”是命令,“cd”,“put”和“quit”输入到sftp。通常,您将使用“here document”,从包含该输入的文件重定向输入,或者将脚本编写为此类事物的包装。

使用scp而不是sftp。这将完全避免向实用程序提供输入的需要。它更简单:

scp my_file user@remote.server:/remotedir