Inotify wait Копирование скрипта, повреждающее изображения
Итак, у меня запущен этот скрипт с использованием inotifywait. Один сервер помещает образы в папку NFS на хост-сервере по адресу /var/nfs/device_images. (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 пытается отправить фотографию до того, как она будет полностью передана? У кого-нибудь есть решение?
1 ответ
create
событие будет инициировано, как только файл будет создан, даже до того, как он будет полностью записан, что будет выглядеть так, как будто изображения повреждены
Один из способов решить эту проблему - сделать inotifywait
слушать только move
событие и заставляя сервер, который заполняет /var/nfs/device_images
создать файлы во временном каталоге и переместить их в /var/nfs/device_images
по окончании.
Вы можете указать temp
каталог для большинства утилит, которые используются для захвата файлов, таких как rsync
/ wget