Точность о событии incron
В настоящее время я изучаю немного incron. Чтобы узнать, у меня есть работающий incron на виртуальной машине, наблюдающий, когда файл перемещается в наблюдаемую папку.
Вот incron:
/var/share/entrant/DEFAULT/ IN_CLOSE,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE /opt/maarch/separateur_qr/scripts/incron.sh $@$#
Так что используйте IN_CLOSE, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE
событие. Но после прочтения документа Incron я вижу IN_MOVE_TO
событие.
Почему это работает с этими 3 событиями? Для меня это бред, потому что я не думаю, что файл открывается при перемещении.
1 ответ
Будет ли файл открыт или нет при перемещении, зависит от целевого местоположения:
Когда целевое местоположение находится в той же файловой системе, что и исходное местоположение, mv
будет просто использовать rename
syscall и не открывайте файл.
Когда целевое местоположение находится в другой файловой системе, mv
откроет файл, скопируйте его используя read
/ write
системные вызовы и, наконец, удалить оригинальный файл.