如何监听 (S)FTP 服务器上的变化?

How can I listen for changes on a (S)FTP server?

我正在从多个 (S)FTP 服务器下载每日文件。这些服务器不是我管理的,我已被外部方授予访问权限。

文件在一天中的不同时间点到达。因此,我无法事先不知道何时必须发送提取请求。

有没有聪明的方法来设置侦听器来跟踪这些 SFTP 服务器上的更改?例如,某种 ping returns 服务器的最后更新时间戳。

首先,FTP和SFTP是两个完全不相关的协议。因此,在一个问题中要求两者都没有意义。不管怎样,两者的答案其实差不多。


FTP 和 SFTP 协议都没有任何机制来通知客户端有关更改。

他们甚至没有办法根据请求报告更改。

您所能做的就是定期列出服务器上的所有文件,并将该列表与以前的结果进行比较。

使用 FTP,可以通过请求按时间戳排序的列表来 稍微 优化。这样,特别是如果文件夹中有很多文件,您可以在获取所有新文件后中止列表下载。虽然要求排序列表是一个非标准函数,但得到广泛支持。参见


如果您控制服务器(机器,而不是软件),您可能会在那里构建一个服务来提供您需要的信息。但这与SFTP/FTP无关。由于您不控制服务器,因此它也不相关。


类似的近期问题: