Использование mron-файла incrontab приводит к получению 0-байтового файла - PullRequest
0 голосов
/ 06 февраля 2019

Я наблюдаю за папкой, используя incrontab, с помощью команды в редакторе incrontab -e:

/media/pi/VDRIVE IN_CLOSE_WRITE sudo mv $@/$# /media/pi/VDRIVE/ready/$#

Просматриваемая папка передает файл по сети с другого компьютера -файл показывает OK и, кажется, запускает задание incrontab, предположительно, после того, как процесс копирования закрыл файл, но команда mv приводит к файлу 0 байт в папке назначения с правильным именем.

Все запускаются каккорень.

1 Ответ

0 голосов
/ 24 апреля 2019

Кажется, что в Samba на OSX есть ошибка, которая приводит к двум событиям при записи в общую папку в сети.Это делает incrontab довольно неработоспособным при работе с компьютерами OSX (более поздняя версия OS 10.7).Поэтому, когда OSX записывает файл в общий ресурс Linux samba, происходит два события, первое из которых запускает действие mv до того, как файл фактически завершит запись.Это ошибка в реализации SAMBA OSX.

В конце я использовал inotify для записи событий в файл журнала (которых всегда есть два), затем просканировал файл на наличие двух экземпляров события перед выполнением действия..

Другой стратегией было использование LSOF в подпрограмме cron, которая будет просто игнорировать любые файлы, открытые для записи.

...