完成传输后将文件移动到另一个目录

jav*_*nix 6 python bash ubuntu file-monitoring

我有一个视频编码脚本,我想在文件移动到特定目录后立即运行.

如果我使用像inotify这样的东西,我如何确保文件在完成移动之前不进行编码?

我考虑过这样做:

  • 将(rsync)文件复制到临时目录中.
  • 完成后,将(简单的'mv')移动到encode目录中.
  • 让我的脚本监视编码目录.

但是,如何使第2步正常工作并且仅在#1完成后运行?

我正在使用Ubuntu Server 11.10,我想使用bash,但如果能够简化问题,我可以说服我使用Python.

我不是将文件"下载"到这个目录中; 相反,我绝大多数时间都会使用rsync.

此外,此Ubuntu服务器正在VM上运行.

我通过NFS从FreeBSD服务器安装了我的主文件存储.

siz*_*erz 1

我使用的一项技术适用于 FTP。您向 FTP 服务器发出命令以将文件传输到辅助目录。命令完成后,您向服务器发送第二个命令,这一次告诉服务器将文件从 aux 目录重命名为最终目标目录。如果您使用 inotify 或轮询目录,则文件名不会出现直到重命名完成,因此,您可以保证文件是完整的。

我不熟悉 rsync 所以我不知道它是否有类似的重命名功能。