通过SFTP下载文件后运行任务

通过SFTP下载文件后运行任务

我不知道这是否可能,如果可能的话,从哪里开始呢?

实际上,我们有一个 SFTP 服务器,我希望能够在文件下载后将其存档。该服务器有多个 root 用户,因此我需要创建一个可以在每个用户的根文件夹中重复执行的过程。

但是,每个用户的文件夹都在相同的初始目录(而不是主目录)中,并且每个用户的文件夹都具有相同的文件结构(具有 In、Out 和 Archive 文件夹)。

有没有办法实现这一点?我确实想知道在每天结束时运行一个 cron 任务,但如果是这样,我想处理文件在下载后被覆盖的不太可能发生的事件。例如,如果有人从我们这里获得一个文件,然后联系我们告知需要修改某些内容。然后需要再次将文件保存在 Out 文件夹中,但我几乎没有办法保证工作人员不会覆盖先前下载的文件,而不是用“v2”之类的后缀来覆盖它。

我不知道如何知道文件已下载。当 Ubuntu 上或特定用户访问文件时,您是否能够运行事件?

如果没有,我可以检查日志,这会有所帮助,我会显示已访问文件的列表,但是,日志没有给出年份。考虑到这将是一个持续的解决方案,在 12 个月内,我不希望系统认为“此文件已被访问”,而实际上发生的是一年多前访问了同一个文件。

任何东西都需要在服务器端运行。客户端都位于公司外部,因此我几乎无法控制使用什么软件等来连接到我们的服务器。

如果文件被覆盖,那就很重要了,因为如果它被更改了,我最不希望看到的就是文件被存档。然后客户端就无法下载更新的文件。如果有一个新文件,名字不同,那显然是一个新文件。

如果您需要任何详细信息(日志格式等),请告诉我。

文件结构(每个用户都有自己的文件夹,因此):

/sftp共享

->/用户一

->->/在

->->/出

->->/存档

->/用户二

->->/在

->->/出

->->/存档

我想要检查已下载的文件位于 Out 文件夹中。In 文件夹中的文件无需检查,因为这些是我们已经收到的项目,并且由我们在 SQL 服务器读取文件时已运行的进程存档。

我并不是真的想找个人给我一个完整的脚本(除非你觉得太有帮助!),但如果有人能给我指出正确的方向,告诉我可能需要从哪里开始,以及我可能需要的一些脚本片段,那将非常有用。

感谢所有能提供帮助的人。

汤姆

相关内容