我有一个过程,最终用户使用filezilla软件通过ftp将图片文件复制到Ubuntu文件夹。 另一方面,我有一个使用CRON执行的batch file,计划在午夜执行。
我的问题是,有时图片的数量是巨大的,在午夜的时候,ftp进程仍在运行,导致图片混乱。
我想通过在ftp进程结束时触发bash脚本来解决这个问题。 有没有办法做到这一点?
编辑:我正在使用的FTP服务器是与XMPP 1.6是proftpd
@ Zoredache的想法可能是最干净的; 上传完成后触发的ftpd钩子。
否则,从我的头顶上来看,一个简单的黑客就会简单地把你的cron脚本封装在一个检查ftpd进程是否正在运行的东西里。 如果是这样,等待()在PID。 这将阻止你的进程的执行,直到ftpd进程终止。 请注意,这里有一个竞争条件,因为另一个ftpd进程可以在脚本执行的时候启动。
或者,您可以编写一个小的守护进程,并使用2.6内核中的inofity系统来观察上传您的目录,并且修改时间<某个阈值的文件; 基本上是一个“最好的猜测”文件完成钩子。