Inotify 等待复制脚本损坏图像
Inotify wait Copy Script Corrupting Images
所以我有这个脚本 运行,使用 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
所以我有这个脚本 运行,使用 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