Profile-sync-daemon (Русский)
profile-sync-daemon (psd) — небольшой псевдо-демон, предназначенный для переноса профилей браузеров в tmpfs (ОЗУ) и синхронизации с постоянным хранилищем (HDD/SSD) используя rsync. Демон автоматически производит резервные копии на случай возникновения сбоев.
Преимущества psd
Цели psd:
- Простота в использовании.
- Уменьшение износа жесткого диска.
- Увеличение скорости работы браузера.
Профили, кэш, и прочие пользовательские данные браузера переносятся с помощью psd в tmpfs (ОЗУ), соответственно операции ввода/вывода браузера перенаправляются в оперативную память. Таким образом, уменьшается износ жесткого диска, повышается отказоустойчивость и скорость работы браузера: время доступа к оперативной памяти составляет порядка наносекунд, в свою очередь, время доступа обычного жесткого диска приблизительно в 1,000,000 раз выше и составляет порядка миллисекунд.
/home/$USER/.cache/<browser>/<profile>/
) в каталог с профилем браузера, например /home/$USER/.mozilla/firefox/<profile>/cache
, и создать символьную ссылку из стандартного пути в новый. Таким образом, profile-sync-daemon автоматически будет учитывать каталог с кешем.Установка и настройка
Установите пакет profile-sync-daemon.
Редактируем файл с конфигурацией
Произведите первый запуск psd, это создаст файл $XDG_CONFIG_HOME/psd/psd.conf
, который содержит все опции.
$ psd First time running psd so please edit /home/facade/.config/psd/psd.conf to your liking and run again.
- Опционально включите использование overlayfs для улучшения скорости синхронизации и уменьшить количество необходимой памяти. Для этого используйте переменную USE_OVERLAYFS. Пользователю понадобятся sudo права доступа к
/usr/bin/psd-overlay-helper
для использования этой опции, а также ядро должно поддерживать overlayfs версии 22 или новее. Смотрите FAQ ниже чтобы узнать подробности. - Опционально укажите названия веб-браузеров, профили которых необходимо перенести в ОЗУ, посредством массива BROWSERS. Если в этой переменной ничего не указано, по умолчанию перенесутся все найденные профили поддерживаемых браузеров.
- По необходимости можете указать путь к tmpfs разделу с помощью переменной VOLATILE.
- По необходимости можете выключить создание резервных копий профиля (не рекоммендуется) с помощью переменной USE_BACKUPS.
Пример: Допустим что у вас установлены браузеры Chromium, Opera и Midori, однако вы хотите перенести профили в ОЗУ только для Chromium и Opera:
# List browsers separated by spaces to include in the sync. Useful if you do not # wish to have all possible browser profiles sync'ed. # # Possible values: # chromium # chromium-dev # conkeror.mozdev.org # epiphany # firefox # firefox-trunk # google-chrome # google-chrome-beta # google-chrome-unstable # heftig-aurora # icecat # luakit # midori # opera # opera-developer # opera-beta # qupzilla # palemoon # rekonq # seamonkey # vivaldi # # If the following is commented out (default), then all available/supported # browsers will be sync'ed, separated by comma BROWSERS="chromium opera"
Поддерживаемые браузеры
В настоящее время следующие браузеры поддерживаются:
- Chromium
- chromium-devAUR
- conkeror-gitAUR
- Epiphany
- Firefox (все разновидности — stable, beta и nightly)
- google-chromeAUR
- google-chrome-betaAUR
- google-chrome-devAUR
- версия Aurora от hetfig: браузер для Arch Linux
- icecatAUR
- Luakit
- Midori
- Opera
- Otter Browser
- Qutebrowser
- palemoonAUR / palemoon-binAUR
- seamonkey
- surfAUR
- vivaldi
Использование psd
Проверка конфигурации
Запуск с опцией 'parse' показывает что именно psd будет делать, основываясь на конфигурации в $XDG_CONFIG_HOME/psd/psd.conf
, а также выведет прочую полезную информацию.
$ psd p Profile-sync-daemon v6.03 on Arch Linux. Systemd service is currently active. Systemd resync service is currently active. Overlayfs v23 is currently active. Psd will manage the following per /home/facade/.config/psd/psd.conf settings: browser/psname: chromium/chromium owner/group: facade/100 sync target: /home/facade/.config/chromium tmpfs dir: /run/user/1000/facade-chromium profile size: 93M overlayfs size: 39M recovery dirs: 2 <- delete with the c option dir path/size: /home/facade/.config/chromium-backup-crashrecovery-20150117_171359 (92M) dir path/size: /home/facade/.config/chromium-backup-crashrecovery-20150119_112204 (93M) browser/psname: firefox/firefox owner/group: facade/100 sync target: /mnt/data/docs/facade/mozilla/firefox/f8cv8bfu.default tmpfs dir: /run/user/1000/facade-firefox-f8cv8bfu.default profile size: 145M overlayfs size: 13M recovery dirs: none
Как показано в выводе и указано выше, если в массиве BROWSERS не задан конкретный список браузеров, psd будет синхронизировать все профили поддерживаемых браузеров, которые он сможет найти для данного пользователя.
Режим чистки
Режим чистки удалит все резервные копии. Запускайте этот режим только если вы уверенны что собранные резервные копии больше не понадобятся.
$ psd c Profile-sync-daemon v6.03 on Arch Linux. Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium /home/facade/.config/chromium-backup-crashrecovery-20150117_171359 /home/facade/.config/chromium-backup-crashrecovery-20150119_112204
Запуск и завершение psd
В последних версиях psd поддерживается только systemd как демон инициализации. Psd включает в себя пользовательский systemd сервис для запуска и завершения psd (psd.service).
Для пользователей, незнакомых с пользовательским режимом systemd, используйте следующую команду для запуска сервиса psd:
$ systemctl --user [option] psd.service
Доступные опции: start stop enable disable status
Поддерживаемые дистрибутивы
psd представляет из себя обычный bash-скрипт и должен работать на любом дистрибутиве Linux. Многие дистрибутивы предоставляют официальные и пользовательские пакеты для установки psd. На официальном сайте доступен список пакетов и инструкции по установке.
Установка частоты синхронизации (опционально)
Предоставленный с пакетом таймер настроен на синхронизацию с интервалом в один час. Пользователь может легко установить другой желаемый интервал, редактируя файл установок таймера. В примере ниже таймер установлен на сихронизацию с интервалом в 10 минут.
/etc/systemd/system/psd-resync.timer.d/frequency.conf
[Unit] Description=Timer for Profile-sync-daemon - 10min [Timer] # Empty value resets the list of timers OnUnitActiveSec= OnUnitActiveSec=10min
См. systemd.timer(5) для получения дополнительной информации о настройке таймеров.
FAQ
Что такое overlayfs и зачем его использовать?
Overlayfs это простая файловая система, включенная в ядро Linux с версии 3.18.0. В psd, начиная с версии 5.54, overlayfs можно использовать, чтобы уменьшить занимаемую демоном psd память в tmpfs и ускорить операции синхронизации с диском. Особенность метода в том, что overlayfs записывает только измененные данные, а не весь профиль. Те же функции восстановления, которые использует psd в своем режиме по умолчанию, также активны при работе в режиме overlayfs. Чтобы включить режим Overlayfs, нужно раскомментировать строку USE_OVERLAYFS="yes" в $XDG_CONFIG_HOME/psd/psd.conf
и затем перезапустить демон.
Существует несколько версий overlayfs, доступных в ядре Linux в различных дистрибутивах. В версиях 22 и ниже есть модуль под названием 'overlayfs', а в более новых версиях (23 и выше) есть модуль под названием 'overlay' -- обратите внимание на отсутствие 'fs' в новой версии. psd автоматически обнаружит overlayfs, доступный в вашем ядре, если тот настроен на его использование.
Начиная с версии psd 6.05, пользователи, желающие использовать этот режим, ДОЛЖНЫ иметь права sudo (без запроса на ввод пароля) для файла /usr/bin/psd-overlay-helper
или же глобально. Следующая строка в файле /etc/sudoers
предоставит пользователю эти права. Добавьте её с помощью /usr/bin/visudo
от имени root:
foo ALL=NOPASSWD: /usr/bin/psd-overlay-helper
См. пример в разделе "Проверка конфигурации" выше, в котором показана система, использующая overlayfs для иллюстрации возможностей экономии памяти.
Обратите внимание на строку "overlayfs size" в сравнении со строкой "profile size" для каждого профиля. Имейте в виду, что эти цифры будут меняться в зависимости от объема данных, записываемых в профиль, но при обычном использовании размер overlayfs всегда будет меньше размера профиля.
Overlayfs требует больше памяти для размещения моего профиля/профилей в /run/user/xxxx. Как мне выделить больше?
Стандартный способ контроля размера /run/user это директива RuntimeDirectorySize в logind.conf (подробнее см. man-страницу для logind.conf). По умолчанию используется 10% физической памяти, но можно безопасно ее увеличить. Помните, что tmpfs использует только то, что фактически используется; Указанное здесь число является только максимально допустимым.
Моя система аварийно завершила работу и не была синхронизирована. Что мне делать?
Скорее всего, "последняя целая" резерваная копия of ваших профилей браузеров все ещё в сохранности у вас на жестком диске. При перезапуске psd
(например, при перезагрузке), выполняется проверка, чтобы убедиться, что символическая ссылка на копию в tmpfs вашего профиля недействительна. Если она недействительна, psd снимет "последнюю целую" резервную копию, прежде чем вернуть её на место.
Эта опция больше для проверки, что psd работоспособен и любая потеря данных была по причине чего-то другого.
$XDG_CONFIG_HOME/psd/psd.conf
, если нужно.Где я могу найти снимок?
Это зависит от браузера. Вы найдете моментальный снимок в том же каталоге, что и профиль браузера, и он будет содержать отметку даты и времени, которая соответствует времени, когда был сделан снимок. Например, для chromium это будет ~/.config/chromium-backup-crashrecovery-20130912_153310
-- конечно, отметка времени у вас будет своя.
Как восстановить снимок?
- Остановить
psd
. - Убедиться, что нет символьной ссылки на директорию профиля браузера в tmpfs. Если есть, psd не был завершен корректно по другим причинам.
- Переместите "плохую" копию профиля в резервную копию (не удаляйте ничего просто так).
- Скопируйте каталог с моментальным снимком туда, куда нужно для конкретного браузера.
Пример для браузера Chromium:
mv ~/.config/chromium ~/.config/chromium-bad cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium
Теперь вы можете запустить Chromium, который будет использовать скопированный резервный снимок. Если все в порядке, закройте браузер и перезапустите psd. На этом этапе вы можете безопасно удалить ~/.config/chromium-backup-crashrecovery-20130912_153310
.
Может ли psd удалить снимки автоматически?
Да, запустите psd с ключом "clean" для удаления снимков.
Поддержка
Пишите в тему на форуме (англ.) для комментариев и прочих обсуждений.