首页 > 解决方案 > 用于轮询 SFTP 目录的 Bash 脚本

问题描述

我在 ubuntu 服务器上运行了 2 个单独且非常简单的 bash 脚本,负责通过 SFTP 将文件上传和下载到外部供应商目录。脚本如下所示

上传

export SSHPASS="$LICENCEPASS"
sshpass -e sftp -oBatchMode=no -oPort="$SFTP_PORT" 
"$LICENCENUM"@"$SFTP_HOST" << !
put $REQFILE
bye
!

下载

export SSHPASS="$LICENCEPASS"
sshpass -e sftp -oBatchMode=no -oPort="$SFTP_PORT" 
"$LICENCENUM"@"$SFTP_HOST" << !
get $OUTFILE
rm $OUTFILE
bye
!

当请求文件被推送给供应商时,可能需要一分钟才能生成相应的响应文件(根据请求的数据量,它也可能在一秒钟内发生)。我的问题是,是否可以轮询此目录,直到生成响应文件然后运行下载。目前,我正在运行第一个脚本,等待一分钟,然后运行不理想的第二个脚本。理想情况下,我希望上述两个代码片段属于同一个脚本,两者之间有一个部分轮询目录,直到准备好下载响应文件。任何正确方向的指针将不胜感激。

标签: linuxbashsftp

解决方案


推荐阅读