Ubuntu-完成 ftp 复制后执行批处理脚本

Ubuntu-完成 ftp 复制后执行批处理脚本

我有一个流程,首先是最终用户使用 filezilla 软件通过 ftp 将图片文件复制到 Ubuntu 文件夹。另一方面,我有一个使用 CRON 执行的批处理文件,计划在午夜执行。

我的问题是,有时图片数量巨大,而 ftp 进程在半夜仍然在运行,最终导致图片混乱。

我想通过在 ftp 进程结束时触发 bash 脚本来修复此问题。有办法吗?

编辑:我使用的 ftp 服务器是 xampp 1.6 附带的 proftpd

答案1

@Zoredache 的想法可能是最清晰的;上传完成后触发的 ftpd 钩子。

否则,我首先想到的快速破解方法是简单地将您的 cron 脚本包装到某个程序中,该程序会检查 ftpd 进程是否正在运行。如果是,则对 pid 执行 wait()。这将阻止您的进程的执行,直到 ftpd 进程终止。请注意,这里有一个竞争条件,因为另一个 ftpd 进程可以在您的脚本执行时启动。

或者,您可以编写一个小的守护进程并使用 2.6 内核中的 inofity 系统来监视您上传的目录,并处理修改时间 < 某个阈值的任何文件;基本上是一个“最佳猜测”文件完成钩子。

相关内容