Устранение проблем с синхронизацией облачного хранилища NextCloud

    Общий рейтинг статьи: 5 (проголосовало 1 )
    Опубликовано:  [просмотров 562]


    Как вы наверное знаете мы предлагаем нашим клиентам облачные хранилища на базе форка OwnCloud который называется NextCloud и  как установить и настроить свое собственное облачное хранилище я рассказывал в предыдущих статьях.

    В большинстве случаев настроенное облачное хранилище NextCloud просто работает и требует участие системного администратора только на период установки обновлений, но иногда все же возникают конфликтые ситуации или логические ошибки требующие участия администратора. Сегодня мы рассмотрим ряд типовых ошибкок в работе облачного хранилища и методы их устранения.

    Прежде всего, при возникновении логических ошибок синхронизации переведите облачное хранилище в режим обслуживания. Для работы с облачным хранилищем из консоли web-сервера используется утилита occ находящаяся в корне web-проекта. 

    Перевод облачного хранилища в режим обслуживания выполните команду:

    # sudo -u www-data php occ maintenance:mode --on

    Для отключения режима обслуживания выполните команду:

    # sudo -u www-data php occ maintenance:mode --off

    Обратите внимание, что перевод облачного хранилища в режим обслуживания лучше проводить когда меньше всего людей пользуется NextCloud, так как в режиме обслуживания на Desktop-клиентах будет запрошен пароль пользователя, что вызывает лишние вопросы.

    Ошибка "Файл был удален с сервера"

    Это довольно распространенная ошибка в английском варианте без локализации она звучит как "File was deleted from server". Это не блокирующая ошибка и синхронизация будет продолжаться, но в логах клиента будут присутствовать соответствующие ошибки.

    Для устранения этой ошибки проще всего воспользоваться встроенной функцией сканирования файлового хранилища. Эта функция может быть запущена для всех пользователей:

    # sudo -u www-data php occ files:scan --all

    Это доволно длительная операция зависящая от того сколько у вас пользователей и файлов и для устранения проблем у одного пользователя можно указать вместо параметра его имя или идентификатор в Active Directory:

    # sudo -u www-data php occ files:scan B010206D-4B60-40F3-AB03-68FE9329ADCC

    Если вам известно расположение сбойного файла, то можно указать какой каталог требуется пересканировать:

    # sudo -u www-data php occ files:scan B010206D-4B60-40F3-AB03-68FE9329ADCC \
    --path="B010206D-4B60-40F3-AB03-68FE9329ADCC/files_versions/"

    В более тяжелых случаях, когда штатные средства не помогают, вам придется удалить записи о файлах напрямую из базы данных, для чего подключитесь к базе данных mysql и выполните запрос файлового идентификатора искомого файла.

    > select fileid,path from oc_filecache where path like '%Notes/2.%';

    Где, '%Notes/2.%' - это запрос части имени файла вызывающего ошибку.

    Следующим этапом удаляем идентификаторы сбойных файлов:

    > delete from oc_filecache where fileid=254235;

    254235 - соответственно идентификатор сбойного файла.

    Ошибка "Precondition failed (An If-Match header was specified and the resource did not exist)"

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

    По этой ошибке я отписался в багтрекер посмотрим, что скажут разработчики.

    Ошибка "File is locked"

    Распространенная ошибка при использовании медленных серверов. Возникает когда сервер не успевает обработать два разных быстрых изменения файла (медленная дисковая подсистема).

    Часто появляется на дешевых VPS с включенным режимом шифрования файлов, просто так не исправляется и потребует перевода франилища в режим обслуживания и выполнения SQL-запроса по очистке таблицы блокировок.

    > delete from oc_file_locks;


    Связанные записи в блоге

    Обсуждение статьи

    Ваш комментарий: