Назад | Перейти на главную страницу

Samba 4 и сообщения «файл изменен вне этого приложения»

Я много лет использовал CentOS 5 и 6 в качестве сервера веб-разработки. Я редактирую файлы непосредственно на общей папке samba, установленной на Windows 7 (ранее Windows XP). Я пытаюсь перейти на CentOS 7 с Samba 4.8. Когда я редактирую файл на общей папке samba, возникает странная проблема. Я редактирую файл, сохраняю его и получаю сообщение «Файл изменен вне этого приложения». Такое часто случается.

Я пробовал "dos filetime resolution = yes". Это не помогло, но я думаю, что это только решение для действительно старого программного обеспечения, потому что Windows 7 показывает странные времена.

Так что я бегу watch -n 1 stat file.txt и я сохранил это. Временная метка изменения изменилась на: 2019-08-10 22:48:19, но через несколько секунд она снова изменилась на: 019-08-10 22:48:33

Думаю, в этом проблема. Самба Что-то возвращается и что-то делает с файлом, что изменяет время модификации. Я понятия не имею, что и почему, но это действительно мешает редакторам и затрудняет работу. Я видел, что на cifs монтируют и под linux, когда сервер samba 4.

Это также происходит на моем сетевом хранилище QNAP, на котором работает Samba 4.4.

Любые идеи?

Обновить:

inotifywait -m /home
...... on save:
/home/ OPEN output.txt
/home/ ATTRIB output.txt
/home/ MODIFY output.txt
/home/ CLOSE_NOWRITE,CLOSE,ISDIR
/home/ ATTRIB output.txt
...... about 10-15 seconds after the save:
/home/ CLOSE_NOWRITE,CLOSE output.txt
/home/ CLOSE_WRITE,CLOSE output.txt
/home/ ATTRIB output.txt

Я узнал, что если вариант oplocks = yes Samba будет вести себя так, как описано выше. Итак, в любом нормальном дистрибутиве Linux вы можете установить oplocks = no. Однако я не уверен, как обойти QNAP, перезаписывая файл конфигурации каждый раз, когда я меняю конфигурацию samba (и, возможно, при перезагрузке?). Так что я не буду принимать это как ответ, но это может помочь кому-то еще с той же проблемой в обычном дистрибутиве Linux.