Многие наверное давно и успешно пользуются известнейшим сервисом «онлайн-флешки» — 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 снова перестанет синхронизироваться — достаточно увеличить еще раз.
Где именно увеличть значение этой переменной — max_user_watches?
что такое «из-под рута» ?
Если бы подсказали как для чайников, была бы очень благодарна вам… )
Где — написано в заметке: echo 30000 > /proc/sys/fs/inotify/max_user_watches
Выполнить команду с правами администратора.
В Убунте:
sudo su
echo 30000 > /proc/sys/fs/inotify/max_user_watches
Не помогает 🙁
Стоит:
$ 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
Но так и не синхронизируется.
Учитывается общее число каталогов и файлов, принадлежащих пользователю, а не только тех, что синхронизируются в Dropbox. Т.е. дело не в клиенте Dropbox, а в работе ФС и ОС. Так что я бы для начала попробовал поднять лимит выше 100000.