gpt4 book ai didi

linux - 如何获取文件仍然为 ftp 打开的信息

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:25 25 4
gpt4 key购买 nike

我使用的服务器(Synology NAS)通过ftp复制,视频剪辑来自闭路电视系统的录像机。复制文件时,小脚本将其从 DAV 格式转换为 AVI,使用以下语句:

find ./ -type f -name "*.dav" -exec ffmpeg -y -i {} -vcodec copy -movflags +faststart {}.avi \;

问题是有很多片段不断从 CCTV 录像机传输到 Synology。也就是说,许多剪辑同时从录像机传输到 Synology。因此,上面的语句将尝试转换传输尚未结束的剪辑。如何从转换中排除此类不完整的剪辑?我无法使用“inotify”或“lsof”功能,因为 Synology Linux 中没有此类功能(由于多种原因,我无法在 Synology 上安装 optware)。我认为有必要知道特定文件仍处于打开状态以供写入并将其排除在外。知道该怎么做吗?

最佳答案

我终于找到了解决问题的方法。单个视频剪辑小于 10MB。所以传输单个文件的时间最多不到 1 分钟。因此,我在 find 命令中添加了修改时间作为参数。它解决了我的问题。我遇到的所有问题都是因为 Synology Linux 的功能有限。 Se 下面的新命令语法:

find ./ -type f -mmin +10 -name "*.dav" -exec ffmpeg -y -i {} -vcodec copy -movflags +faststart {}.avi \;

请注意,如果文件在过去 10 分钟内没有被修改,这意味着传输过程结束并且在我的应用程序(CCTV 视频剪辑收集)中没有必要检查文件是否打开。

关于linux - 如何获取文件仍然为 ftp 打开的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39761914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com