Автор Тема: (Thunar, Nautilus) Не обновляются подключенные сетевые каталоги.  (Прочитано 3564 раз)

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Здравствуйте.

Проверял один баг. На altlinux-7.0.5-school-junior-x86_64 та же ситуация. Хочу спросить и на этом форуме, т.к. позиционирование дистрибутива серьезное. Описание:

Если зайти по сети на другой компьютер в папку в виде smb://....... Thunar (как впрочем и другие) файловые менеджеры никак не проверяют изменилось ли что-то в этих папках. Т.е. если открыть папку, а на удаленном компьютере стереть или добавить файл - изменений не происходит. Помогает только F5.

Причем не важно, монтировано ли вручную через mount в папку или просто автомонтированием в самом менеджере! Если удалить или создать файл - вроде обновляется (это и понятно - ФМ сам же и изменил содержимое).

Проверялось на Ubuntu 14.04, 15.10 (и даже OpenSuse). Thunar разных версий, Nautilus. XFCE, UNITY.

Задачка: необходимо делать это автоматически без участия пользователя. У Thunar и Nautilus нет возможности сделать Refresh (можно было бы сделать в фоне каждые 10 секунд). Непонятна схема появления необходимости update содержимого папок.

Я так понимаю, что цепляется автоматом через gvfs. В fstab нет возможности (там для каждого пользователя свои права) прописать монтирование - может быть тогда ядро следило бы и за ними, как за локальной файловой системой (что врятли)? Настроек монтирования особо никаких не нашел, которые могли бы помочь...

Много искал - ничего толком не нашел. Думал, может какой сигнал послать в DBUS какой-нибудь...

Есть такое вот:

#qdbus org.gtk.vfs.Daemon
/
/org
/org/gtk
/org/gtk/vfs
/org/gtk/vfs/Daemon
/org/gtk/vfs/mounttracker
/org/gtk/vfs/mountable

Но дальше этого уйти не смог... кому и что надо отослать, чтобы инициализировать refresh информации - непонятно.

В папке /usr/share/gvfs/mounts есть smb-browse.mount и smb.mount... с таким содержимым:

[Mount]
Type=smb-network;smb-server
Exec=/usr/lib/gvfs/gvfsd-smb-browse
DBusName=org.gtk.vfs.mountpoint.smb_browse
AutoMount=false
Scheme=smb

Хелп: Применение: /usr/lib/gvfs/gvfsd-smb-browse ключ=значение ключ=значение
И всё.

Есть идеи как сделать автоматическую проверку подключенных сетевых папок на изменения? Помогите, может я что упустил?

P.S. Самба работает отлично, доменная авторизация. Но это явно не относится к делу - проверял на ручных подключениях. Все работает отлично кроме обновления

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Настроек монтирования особо никаких не нашел, которые могли бы помочь...
Не в курсе что такое  gvfs, но man cifs

http://linux.die.net/man/8/mount.cifs
Цитировать
hard
    The program accessing a file on the cifs mounted file system will hang when the server crashes.
soft
    (default) The program accessing a file on the cifs mounted file system will not hang when the server crashes and will return errors to the user application.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Цитировать
cache=
    Cache mode. See the section below on CACHE COHERENCY for details. Allowed values are:
    • none: do not cache file data at all
    • strict: follow the CIFS/SMB2 protocol strictly
    • loose: allow loose caching semantics
    The default in kernels prior to 3.7 was "loose". As of kernel 3.7 the default is "strict".

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Спасибо, я это проверял ранее. Это к делу не относится, к сожалению. И не помогает. Ни cache=none, ни hard.

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Вообще, конечно, удивляет... элементарные/необходимые по сути вещи нифига не работают со временн царя гороха по сей день...

Посмотрел 12.04 - то же самое с 3.5 самбой.
Посмотрел Caja (файловый менеджер Mate) - то же самое.
Прописывал в FSTAB - пофиг.

Thunar (как и другие впрочем) ведет себя даже следующим образом:

1) Открываем папку сетевую в нем.
2) Открываем ту же к примеру в MC.
3) Создаем файл в MC - Thunar не обновляет каталог, соответственно файла там нет.

Что делать не знаю уже. Нужно чтобы работало. Хоть скрипт пусть будет который рассылает "обновить" - не важно. Любой костыль нужен.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 168
    • Домашняя страница
Вообще, конечно, удивляет... элементарные/необходимые по сути вещи нифига не работают со временн царя гороха по сей день...

Посмотрел 12.04 - то же самое с 3.5 самбой.
Посмотрел Caja (файловый менеджер Mate) - то же самое.
Прописывал в FSTAB - пофиг.

Thunar (как и другие впрочем) ведет себя даже следующим образом:

1) Открываем папку сетевую в нем.
2) Открываем ту же к примеру в MC.
3) Создаем файл в MC - Thunar не обновляет каталог, соответственно файла там нет.

Что делать не знаю уже. Нужно чтобы работало. Хоть скрипт пусть будет который рассылает "обновить" - не важно. Любой костыль нужен.
Смотрите исходный код модулей работы Caja с SMB и gvfs заодно.
Андрей Черепанов (cas@)

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Установите gvfs-utils и пробуйте команду gvfs-cat

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Смотрите исходный код модулей работы Caja с SMB и gvfs заодно.
Это конечно логично, но сравнимо с "я напишу свой собственный ФМ с шарами и апдейтом" )

Я к сожалению не смогу это сделать. Точнее мне там делать нечего.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Это конечно логично, но сравнимо с "я напишу свой собственный ФМ с шарами и апдейтом" )

Не, ну можно скриптик-костылик сваять :-) А вообще надо настройки искать у gvfs.

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Установите gvfs-utils и пробуйте команду gvfs-cat
Спасибо, появились варианты...
#gvfs-cat smb://какой то файл
Отрабатывает, но это не приводит к обновлению. Просто работает как "cat" обычный и все.

gvfs-info тоже не приводит к обновлению. Показывает кучу всякой информации о каталоге и т.п.

#gvfs-info smb://192.168.98.3/data
отображаемое имя: data на 192.168.98.3
редактируемое имя: /
имя: /
тип: каталог
размер:  4096
uri: smb://192.168.98.3/data/
атрибуты:
  standard::type: 2
  standard::name: /
  standard::display-name: data на 192.168.98.3
  standard::edit-name: /
  standard::icon: folder-remote
  standard::content-type: inode/directory
  standard::size: 4096
  standard::allocated-size: 4096
  standard::symbolic-icon: folder-remote-symbolic
  etag::value: 1427181033
  id::filesystem: smb-share:server=192.168.98.3,share=data
  time::modified: 1427181033
  time::modified-usec: 0
  time::access: 1427181033
  time::access-usec: 0
  time::changed: 1427181033
  time::changed-usec: 0
  unix::device: 3968919998
  unix::inode: 1575445821

"time::......." - подозрительные...

Хахаха... gvfs-tree выдает все верно, но даже после, казалось бы чтения каталога заново, Thunar не обновляет. До него не доходит. В принципе та же ситуация как thunar vs mc.
« Последнее редактирование: 24.03.2016 15:45:05 от ZavAlt »

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 168
    • Домашняя страница
$ fcf bin/gvfs-
/usr/bin/gvfs-cat       gvfs-utils
/usr/bin/gvfs-copy      gvfs-utils
/usr/bin/gvfs-info      gvfs-utils
/usr/bin/gvfs-less      gvfs-utils
/usr/bin/gvfs-ls        gvfs-utils
/usr/bin/gvfs-mime      gvfs-utils
/usr/bin/gvfs-mkdir     gvfs-utils
/usr/bin/gvfs-monitor-dir       gvfs-utils
/usr/bin/gvfs-monitor-file      gvfs-utils
/usr/bin/gvfs-mount     gvfs-utils
/usr/bin/gvfs-move      gvfs-utils
/usr/bin/gvfs-open      gvfs-utils
/usr/bin/gvfs-rename    gvfs-utils
/usr/bin/gvfs-rm        gvfs-utils
/usr/bin/gvfs-save      gvfs-utils
/usr/bin/gvfs-set-attribute     gvfs-utils
/usr/bin/gvfs-trash     gvfs-utils
/usr/bin/gvfs-tree      gvfs-utils
Там много других интересных программ. Например, /usr/bin/gvfs-monitor-dir
Андрей Черепанов (cas@)

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
$ fcf bin/gvfs-...Там много других интересных программ. Например, /usr/bin/gvfs-monitor-dir
Я в курсе. И монитор пробывал - побарабасу. Монитор (gvfs-monitor-file) ничего не мониторит - удалял в Трунаре файл - глухо.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 182
  • antohami@
Я в курсе. И монитор пробывал - побарабасу. Монитор (gvfs-monitor-file) ничего не мониторит - удалял в Трунаре файл - глухо.

Значит не gvfs виноват а файловые менеджеры, которые слишком редко опрашивают содержимое каталога...

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Я в курсе. И монитор пробывал - побарабасу. Монитор (gvfs-monitor-file) ничего не мониторит - удалял в Трунаре файл - глухо.

Значит не gvfs виноват а файловые менеджеры, которые слишком редко опрашивают содержимое каталога...

Я просто исходил из соображения, что например ядро следит за изменениями файловой системы, если таковые есть - вроде как где-то что-то меняется (типа флага) --> файловые менеджеры могут это смотреть и обновляться по сигналу. Думал, что "виртуальные файловые системы" ведут себя как то так же...

Просто если бы это было целиком на совести файловых менеджеров, то один из 4-х то мог это делать...

Все подцепляют шары через gvfs (smb). Косвенно на это указывает то, что ФМ подключает smb:// а никаких каталогов не образуется. Т.е. всё как то виртуально.

Пресловутый /run/user/..../gvfs - фигня какая-то. Локально у пользователя в .gvfs ничего не появляется. - это я неправильно посмотрел. Под рутом не показывается... надо под пользователем.
« Последнее редактирование: 24.03.2016 16:56:24 от ZavAlt »

Оффлайн ZavAlt

  • Участник
  • *
  • Сообщений: 17
Так уж между прочим, у TUXCMD (еще один файловый менеджер) всё тоже самое, но есть интересная фича в настройках (причем экспериментальных!) - "Обновление при получении фокуса". Это естественно работает, но опять же если фокус не менялся на другой приложение - не работает.