我使用通过ftp复制的服务器(Synology NAS),来自CCTV系统录像机的视频剪辑。当文件被复制,小脚本转换它从DAV格式为AVI,使用下面的语句:如何获取该文件仍然对ftp打开的信息
find ./ -type f -name "*.dav" -exec ffmpeg -y -i {} -vcodec copy -movflags +faststart {}.avi \;
的问题是,有来自CCTV录像机至Synology不断发送大量的剪辑。这是许多剪辑同时从录像机传输到Synology。所以上面的声明将尝试转换即使传输尚未结束的剪辑。如何从转换中排除此类非完整剪辑?我无法使用“inotify”或“lsof”功能,因为Synology Linux中没有这种设备(由于许多原因,我无法在Synology上安装软件)。我认为有必要知道,特定的文件仍然可以写入,并将其排除在外以供连续使用。任何想法该怎么办?
您可能会检查/ proc/PID/fd文件,您的进程已打开,请参阅http://unix.stackexchange.com/a/66273。另一种方法可能是使用'stat -c%y file'命令中的修改日期,并等待它停止更改。 –