远程服务器 Progress Openedge 上的连接和 运行 unix 命令
Connect and run unix commands on remote server Progress Openedge
我需要通过 sftp 和 put[=25= 连接到 远程服务器] 那里有一些文件。以下命令从终端执行我的工作:
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>)
、all 从 Progress 4GL 代码中 运行 这些命令时命令 运行 在本地服务器 而不是远程服务器上。
非常感谢有关代码示例的建议。
我从来没有 运行 专门研究过这个,但我猜 Progress 并没有保持你的命令链的上下文。我建议这两个之一:
使用“|”在单个语句中通过管道传递它们如 'ls -l | more'
或者,如果这不起作用,
创建一个 shell 脚本并将您的文件保存在本地,然后 运行 以您要上传的文件位置和名称作为参数,最后删除本地文件。
从 OS-COMMAND 的角度来看,这些都不是个人 "commands"。 "sftp"是命令,"cd"、"put"、"quit"是sftp的输入。通常,您会使用 "here document",从包含该输入的文件中重定向输入,或者编写脚本作为此类内容的包装器。
使用 scp 而不是 sftp。这将完全避免向实用程序提供输入的需要。就简单多了:
scp my_file user@remote.server:/remotedir
我需要通过 sftp 和 put[=25= 连接到 远程服务器] 那里有一些文件。以下命令从终端执行我的工作:
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>)
、all 从 Progress 4GL 代码中 运行 这些命令时命令 运行 在本地服务器 而不是远程服务器上。
非常感谢有关代码示例的建议。
我从来没有 运行 专门研究过这个,但我猜 Progress 并没有保持你的命令链的上下文。我建议这两个之一:
使用“|”在单个语句中通过管道传递它们如 'ls -l | more' 或者,如果这不起作用,
创建一个 shell 脚本并将您的文件保存在本地,然后 运行 以您要上传的文件位置和名称作为参数,最后删除本地文件。
从 OS-COMMAND 的角度来看,这些都不是个人 "commands"。 "sftp"是命令,"cd"、"put"、"quit"是sftp的输入。通常,您会使用 "here document",从包含该输入的文件中重定向输入,或者编写脚本作为此类内容的包装器。
使用 scp 而不是 sftp。这将完全避免向实用程序提供输入的需要。就简单多了:
scp my_file user@remote.server:/remotedir