# Profile-sync-daemon (Русский)

Эта страница нуждается в сопроводителе

Статья не гарантирует актуальность информации. Помогите русскоязычному сообществу поддержкой подобных страниц. См. Команда переводчиков ArchWiki

Profile-sync-daemonAUR (psd) — небольшой псевдо-демон, предназначенный для переноса профилей браузеров в tmpfs (ОЗУ) и синхронизации с постоянным хранилищем (HDD/SSD) используя rsync. Демон автоматически производит резервные копии на случай возникновения сбоев.

## Преимущества psd

Цели psd:

1. Простота в использовании.
2. Уменьшение износа жесткого диска.
3. Увеличение скорости работы браузера.

Профили, кэш, и прочие пользовательские данные браузера переносятся с помощью psd в tmpfs (ОЗУ), соответственно операции ввода/вывода браузера перенаправляются в оперативную память. Таким образом, уменьшается износ жесткого диска, повышается отказоустойчивость и скорость работы браузера: время доступа к оперативной памяти составляет порядка наносекунд, в свою очередь, время доступа обычного жесткого диска приблизительно в 1,000,000 раз выше и составляет порядка миллисекунд.

Примечание: Такие браузеры как Chromium, Firefox, Midori и Rekonq хранят файлы кеша в отдельном от профиля каталоге. Изменение этого поведения программы не входит в задачи profile-sync-daemon. Пользователям рекомендуется обратиться к разделу Chromium tweaks#Cache in tmpfs для Chromium и к статье Firefox Ramdisk для Firefox, где описаны возможные решения проблемы. Наиболее простое решение будет переносом каталога с кешом (например, `/home/$USER/.cache/<browser>/<profile>/`) в каталог с профилем браузера, например `/home/$USER/.mozilla/firefox/<profile>/cache`, и создать символьную ссылку из стандартного пути в новый. Таким образом, profile-sync-daemon автоматически будет учитывать каталог с кешем.

## Установка и настройка

Установите пакет profile-sync-daemonAUR.

### Редактируем файл с конфигурацией

Произведите первый запуск psd, это создаст файл `$XDG_CONFIG_HOME/psd/psd.conf`, который содержит все опции.

Примечание: Любые изменения произведённые в этом файле вступят в силу только после перезапуска psd посредством пользовательского systemd сервиса.

    $ 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-dev
- conkeror-gitAUR
- Epiphany
- Firefox (stable, beta и aurora)
- google-chromeAUR
- google-chrome-betaAUR
- google-chrome-devAUR
- Версия Aurora от heftig
- icecatAUR
- Luakit
- Midori
- Opera
- Qupzilla
- rekonqAUR
- seamonkey
- vivaldiAUR

## Использование 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

См. `man systemd.timer` для получения дополнительной информации о настройке таймеров.

## 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 работоспособен и любая потеря данных была по причине чего-то другого.

Примечание: Пользователи могут полностью отключить функцию моментального снимка/резервного копирования, раскомментировав и установив переменную USE_BACKUPS в значение 'no' в `$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" для удаления снимков.

## Поддержка

Пишите в тему на форуме (англ.) для комментариев и прочих обсуждений.

## Смотрите также

- http://www.webupd8.org/2013/02/keep-your-browser-profiles-in-tmpfs-ram.html
- http://bernaerts.dyndns.org/linux/250-ubuntu-tweaks-ssd

Categories:

- Web browser (Русский)
- Scripts (Русский)
- Русский