Dropbox не синхронизирует — решение проблемы

Многие наверное давно и успешно пользуются известнейшим сервисом «онлайн-флешки» — Dropbox — для резервного хранения или синхронизации своих данных между несколькими машинами. Сервис конечно не лишен своих недостатков, чем с успехом пользуются конкуренты типа SugarSync, который заявляет, что лишен минусов Dropbox. Так это или нет — мне проверить не удалось, у SugarSync до сих пор нет клиента под Linux (точнее есть неофициальный, написанный на php, но устанавливать ради него php я не стал).

Как бы то ни было, работа с Dropbox до недавних пор у меня никаких сложностей не вызывала. Невозможность указать разные «корневые» папки дляс синхронизации я обходил с помощью монтирования нужных директорий внутрь корневой директории Dropbox, дописав в fstab следующую строку: ~/Devel ~/Dropbox/Devel none bind,auto 0 0. Незащищенность передачи и отсутствие встроенного шифрования лего преодолеваются путем использования зашифрованной ФС в целом или внутри папки Dropbox. Плюсы у Dropbox тоже есть — сервис старый и обзавелся клиентами для всех популярных ОС и платформ (популярный под Android файловый менеджер ES File Explorer имеет встроенную поддержку Дропбокс например).

Но внезапно Dropbox перестал синхронизировать мои файлы на Linux-машине. Если остановить синхронизацию и снова включить — процесс проходит нормально, тот же эффект вызывается перезапуском клиента, а вот синхронизация «на лету» работать перестала. Лечится это довольно просто — нужно увеличить значение переменной max_user_watches, например выполнив из-под рута такую команду: echo 30000 > /proc/sys/fs/inotify/max_user_watches, после чего перезапустить клиент Dropbox. Если количество каталогов, принадлежащих пользователю, певысит это число и Dropbox снова перестанет синхронизироваться — достаточно увеличить еще раз.

5 мыслей о “Dropbox не синхронизирует — решение проблемы”

  1. Где именно увеличть значение этой переменной — max_user_watches?
    что такое «из-под рута» ?
    Если бы подсказали как для чайников, была бы очень благодарна вам… )

    1. Где — написано в заметке: echo 30000 > /proc/sys/fs/inotify/max_user_watches

      Выполнить команду с правами администратора.

  2. Не помогает 🙁

    Стоит:
    $ grep . /proc/sys/fs/inotify/*
    /proc/sys/fs/inotify/max_queued_events:16384
    /proc/sys/fs/inotify/max_user_instances:128
    /proc/sys/fs/inotify/max_user_watches:100000

    Всего файлов+папок:
    $ find ~/Dropbox | wc -l
    2733

    Но так и не синхронизируется.

    1. Учитывается общее число каталогов и файлов, принадлежащих пользователю, а не только тех, что синхронизируются в Dropbox. Т.е. дело не в клиенте Dropbox, а в работе ФС и ОС. Так что я бы для начала попробовал поднять лимит выше 100000.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *