在SFTP传输文件时暂停perl脚本

在SFTP传输文件时暂停perl脚本,perl,sftp,Perl,Sftp,仅供参考,我对Perl是一个完全的新手,因为我会拼写它,而且只会多一点,所以我正在努力学习。我试图实现的是使用SFTP将文件从Windows机器传输到Linux机器 我注意到Perl发出SFTP get命令,但并不等待传输完成,因此当Perl脚本尝试使用文件时,它找不到文件。我知道有sleep命令,但是文件的数量和大小每周都会有所不同,所以使用sleep(600)似乎有点愚蠢 有没有一种标准方法可以暂停Perl脚本,直到SFTP完成所有必要文件的传输 TIA。使用Net::SFTP可能解决了这个

仅供参考,我对Perl是一个完全的新手,因为我会拼写它,而且只会多一点,所以我正在努力学习。我试图实现的是使用SFTP将文件从Windows机器传输到Linux机器

我注意到Perl发出SFTP get命令,但并不等待传输完成,因此当Perl脚本尝试使用文件时,它找不到文件。我知道有sleep命令,但是文件的数量和大小每周都会有所不同,所以使用sleep(600)似乎有点愚蠢

有没有一种标准方法可以暂停Perl脚本,直到SFTP完成所有必要文件的传输


TIA。

使用Net::SFTP可能解决了这个难题,但我的工作场所不允许我下载和安装东西,特别是在生产中。因此,我没有等待典型的官僚机构,而是进行了更多的挖掘,发现了以下几点:


通过使用包含SFTP命令的单独文件在批处理模式下调用SFTP,Perl脚本必须等待SFTP在单独的“命令”文件中完成命令的执行。因此,通过使用批处理模式选项,只要SFTP完成其文件传输工作,Perl脚本就会暂停。

您如何发出SFTP命令?您应该使用一个模块,如
Net::SFTP
,而不是直接使用命令行实用程序。@Wooble-我看到的是打开一个SFTP管道,然后使用
print SFTP“get remoteFileName\n”@Borodin-我猜Net::SFTP不可用。我试着根据一个例子使用它,我得到一个错误“找不到Net/SFTP.pm…”它不是一个核心模块,所以需要安装。使用
cpanm-Net::SFTP
,您可能会很幸运。否则(或无论如何)读