Profile-sync-daemon (日本語) - ArchWiki

# Profile-sync-daemon (日本語)

関連記事

- Anything-sync-daemon
- Firefox
- Chromium
- Opera
- Pdnsd
- SSD

Profile-sync-daemon (psd) はブラウザプロファイルを tmpfs で管理して定期的に物理ディスク (HDD/SSD) に同期させる、とても小さな擬似的なデーモンです。rsync でブラウザプロファイルの tmpfs のコピーとメディアのバックアップを同期させるという革新的な利用法によります。さらに、psd にはクラッシュからの復元機能が存在します。

## psd のメリット

このデーモンを動かすのが有益だという理由は2つあります:

1. 物理ドライブの損耗が減る
2. 速度

プロファイルやブラウザキャッシュなどを tmpfs (RAM ディスク) に再配置して、ブラウザを使用するのに伴う I/O の猛襲の対象を物理ドライブから RAM に変更することにより、物理ドライブの消耗を抑えつつブラウザの速度や反応性を劇的に高められます。例えば、物理ディスクのアクセス時間はミリ秒単位なのに対してRAM のアクセス時間はナノ秒オーダーです。これは0の数が6個も違う、つまり1000000倍高速ということです。

Note: Chrome/Chromium, Firefox (v21 以上), Midori, Rekonq などのブラウザはプロファイルのディレクトリとは別個にキャッシュディレクトリを保存しています。この挙動を変更するのは profile-sync-daemon の射程外です。Chromium の Chromium tweaks#Cache_in_tmpfs セクションや Firefox_Ramdisk 記事を参照して対処することが推奨されます。楽な修正はブラウザのキャッシュディレクトリ (例: `/home/$USER/.cache/<browser>/<profile>/`) をデフォルトの場所から適当なプロファイルディレクトリ (例: `/home/$USER/.mozilla/firefox/<profile>/cache`) に移動して、新しいキャッシュフォルダから元の場所にシンボリックリンクを作成することです。これによって、profile-sync-daemon は自動的にキャッシュフォルダも扱うようになります。

## セットアップとインストール

profile-sync-daemon は AUR からダウンロードすることができます。他のパッケージと同じようにビルド・インストールしてください。

### /etc/psd.conf の編集

ユーザーによる設定は全て `/etc/psd.conf` に含まれます。

Note: Any edits made to `/etc/psd.conf` while psd is running will be applied only after psd has been restarted from the init service.

最低でも、どのユーザーが psd によって管理するプロファイルを持っているのか定義してください。少なくとも一人のユーザーを定義する必要があります。

任意で BROWSERS 行をアンコメントして tmpfs に同期するブラウザを指定することができます。BROWSERS がコメントアウトされている場合 (デフォルト)、サポートしているブラウザ全てのプロファイルが同期されます。

例: Chromium, Opera, Midori をインストールしていて Chromium と Opera だけを tmpfs に同期する (Midori はバックアップのブラウザとしてたまにしか使わない) という場合:

    # 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
    #   conkeror.mozdev.org
    #   firefox
    #   firefox-trunk
    #   google-chrome
    #   heftig-aurora
    #   midori
    #   opera
    #   opera-next
    #   qupzilla
    #
    # 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-git
- Epiphany
- Firefox (安定版・ベータ版・Aurora 版など全てをサポート)
- google-chrome
- google-chrome-beta
- google-chrome-dev
- heftig バージョンの Aurora: Arch Linux 専用ブラウザ
- icecat
- Luakit
- Midori
- Opera
- opera-next[broken link: package not found]
- Qupzilla
- rekonq
- seamonkey

## psd を使う

### プレビューモード (parse)

'parse' オプションを使うことで `/etc/psd.conf` に基づいて psd が何を行うのかを正確に表示することができます。次のように呼び出して下さい:

    $ profile-sync-daemon parse
     Profile-sync-daemon v5.24

    psd will manage the following per /etc/psd.conf settings:

    browser/psname:  chromium/chromium
    owner/group:     facade/users
    sync target:     /home/facade/.config/chromium
    tmpfs dir:       /tmp/facade-chromium
    profile size:    81M

    browser/psname:  firefox/firefox
    owner/group:     facade/users
    sync target:     /mnt/data/docs/facade/mozilla/firefox/1Zp9V43q.banking
    tmpfs dir:       /tmp/facade-firefox-1Zp9V43q.banking
    profile size:    5.9M

    browser/psname:  firefox/firefox
    owner/group:     facade/users
    sync target:     /mnt/data/docs/facade/mozilla/firefox/obg67zqQ.proxy
    tmpfs dir:       /tmp/facade-firefox-obg67zqQ.proxy
    profile size:    17M

上記の通り、特定のブラウザが BROWSERS 行に設定されていない場合、psd は指定されたユーザーのサポートされているプロファイル全てを同期します。

### psd を実行してプロファイルを管理

同期したり同期を解除するのに `/usr/bin/profile-sync-daemon` を直接実行してはいけません。代わりにサービスファイルを使って下さい。

systemd のサービスファイルとタイマーが両方入っており、これらを使って psd を制御することができます。タイマーの役割は tmpfs をディスクにコピーバックさせることで、一時間に一度実行されます。タイマーは `psd.service` によって勝手に起動します。

起動時・シャットダウン時に実行するには `psd.service` を起動・有効化してください (強く推奨)。

### もっと頻繁に同期する (任意)

パッケージには一時間ごとに同期を行うタイマーが入っています。任意で、systemd ユニットを編集することでこの挙動を再定義することが可能です。以下の例は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` を見て下さい。

## Firefox と Heftig の Aurora での注意事項

The way psd keeps track of browser profiles and sync targets requires users to have a unique name as the last directory for all profiles in their respective `$HOME/.mozilla/browser/profiles.ini` files. psd will check when it is called to run for this and refuse if this rule is not satisfied. The following is an example of a BAD profile that will fail the the test. Note that although each full path is unique, they both end in the same name! Again, the user must modify the `profiles.ini` and the corresponding directory on the filesystem to correct this in order to use psd.

    ~/.mozilla/firefox/profiles.ini

    [General]
    StartWithLastProfile=1

    [Profile0 for user facade]
    Name=normal
    IsRelative=0
    Path=/mnt/data/docs/facade/mozilla/firefox/myprofile.abc
    Default=1

    [Profile1 for user happy]
    Name=proxy
    IsRelative=0
    Path=/mnt/data/docs/happy/mozilla/firefox/myprofile.abc

## FAQ

Note: The first three questions apply to versions of psd equal to or greater than v5.40 only.

### Q1. システムがクラッシュして同期がされませんでした。どうすればいいですか？

Odds are the "last good" backup of your browser profiles is just fine still sitting happily on your filesystem. Upon restarting `psd` (on a reboot for example), a check is preformed to see if the symlink to the tmpfs copy of your profile is invalid. If it is invalid, psd will snapshot the "last good" backup before it rotates it back into place. This is more for a sanity check that psd did no harm and that any data loss was a function of something else.

### Q2. スナップショットはどこにありますか？

It depends on the browser. You will find the snapshot in the same directory as the browser profile and it will contain a date-time-stamp that corresponds to the time at which the recovery took place. For example, chromium will be `~/.config/chromium-backup-crashrecovery-20130912_153310` -- of course, the date_time suffix will be different for you.

### Q3. スナップショットを復元するにはどうすればいいですか？

- Stop `psd`.
- Confirm that there is no symlink to the tmpfs browser profile directory. If there is, psd did not stop correctly for other reasons.
- Move the "bad" copy of the profile to a backup (don't blindly delete anything).
- Copy the snapshot directory to the name that browser expects.

Example using Chromium:

    mv ~/.config/chromium ~/.config/chromium-bad
    cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium

At this point you can launch chromium which will use the backup snapshot you just copied into place. If all is well, close the browser and restart psd and psd-resync (if using systemd). You may safely delete `~/.config/chromium-backup-crashrecovery-20130912_153310` at this point.

## サポート

気づいたことやコメントなどは議論スレッドに投稿してください。

## 他のディストロで PSD

psd は bash スクリプトなので、どんな Linux ディストロでも動作します。インストール方法は公式ウェブサイトを見て下さい。

## 参照

- 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 (日本語)