【发布时间】:2019-05-19 15:08:54
【问题描述】:
我在 Unix 中有一个需求,我需要构建一个 shell 脚本。
要求如下:
我需要将一个文件(比如说 CSV 文件)从我的开发服务器 SFTP 到 uat 服务器。
SFTP到那台服务器完成后,只要文件到了,前一个SFTP的退出码为0,我需要触发一个任务(这个任务我可以处理)。
我对 SFTP 有基本的了解,但我不知道如何在文件到达 uat 服务器后立即触发下一个任务。
请需要一个伪代码来开始我的探索。
【问题讨论】:
-
您打算触发什么样的任务?它是代码/功能的一部分还是任何其他过程?您可以简单地为该任务创建一个函数并调用该函数。
-
该任务是一个导入任务..我已经设置了代码。
-
我认为您可以编写一个只包含两行的脚本:第一行调用 sftp,第二个调用您需要“触发”(启动)的任务 - 如果 sftp 成功。如果您能够在提示符下手动完成,只需在脚本中编写这两行即可。
-
如果你hsve ssh访问,最简单的就是
scp file user@server:/path/to/file && ssh user@server command /path/to/file -
将返回码存储在rc/variable中,然后检查返回码是否为0,然后触发你的任务。
rc= $? if [ $rc==0 ] then trigger your task (call a function or whatever) fi