python - Inotify 等待复制脚本损坏图像

标签 python linux nfs inotifywait

所以我使用 inotifywait 运行了这个脚本。一台服务器将图像放入位于/var/nfs/device_images 的主机服务器上的 NFS 文件夹中。 (工作文件夹上的 chmod 是 777)主机服务器然后将其移动到 python 脚本的工作目录中。

inotifywait -m /var/nfs/device_images -e create -e moved_to | while read path action file; do cp /var/nfs/drvie_images/$file /home/samuel/programname/images/$file; done

有点儿管用。文件本身传输,但它已损坏。似乎 inotifywait 试图在照片完全传输之前发送照片?有人有解决办法吗?

最佳答案

create 事件会在文件被创建时立即触发,甚至在它被完全写入之前,使它看起来像图像已损坏

解决这个问题的一种方法是让 inotifywait 只监听 move 事件并强制服务器填充 /var/nfs/device_images 在临时目录中创建文件,并在完成后将其移动到 /var/nfs/device_images

您可以为大多数用于抓取文件的实用程序指定 temp 目录,例如 rsync/wget

关于python - Inotify 等待复制脚本损坏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51140416/

相关文章:

c - 存储的错误值和其他

linux - Unix:stat程序(大小:8)

linux - 为不同的机器在网络文件系统下构建程序并安装软件

linux - 在 Synology for Linux (KDE Neon) 上设置 NFS 权限

Python 可移植、Linux 和 Windows

Python 请求外部库中的配置

c - `off_t` 之前的预期表达式

centos - 想在容器中运行 exportfs,需要挂载到容器中吗?

python - 带有圆圈表示人口规模的热图

python - 如何在 Python 中获取多维 Numpy 数组元素的类型