Vdirsyncer. Синхронизация адресной книги и календаря

Синхронизация локальной базы контактов и календаря.

Содержание

1 Общая информация

2 Установка

  • Linux
    • Gentoo

      1emerge vdirsyncer
      

3 Конфигурирование

3.1 Типовая конфигурация

  • В поставке идёт пример файла конфигурации:

     1# An example configuration for vdirsyncer.
     2#
     3# Move it to ~/.vdirsyncer/config or ~/.config/vdirsyncer/config and edit it.
     4# Run `vdirsyncer --help` for CLI usage.
     5#
     6# Optional parameters are commented out.
     7# This file doesn't document all available parameters, see
     8# http://vdirsyncer.pimutils.org/ for the rest of them.
     9
    10[general]
    11# A folder where vdirsyncer can store some metadata about each pair.
    12status_path = "~/.vdirsyncer/status/"
    13
    14# CARDDAV
    15[pair bob_contacts]
    16# A `[pair <name>]` block defines two storages `a` and `b` that should be
    17# synchronized. The definition of these storages follows in `[storage <name>]`
    18# blocks. This is similar to accounts in OfflineIMAP.
    19a = "bob_contacts_local"
    20b = "bob_contacts_remote"
    21
    22# Synchronize all collections that can be found.
    23# You need to run `vdirsyncer discover` if new calendars/addressbooks are added
    24# on the server.
    25
    26collections = ["from a", "from b"]
    27
    28# Synchronize the "display name" property into a local file (~/.contacts/displayname).
    29metadata = ["displayname"]
    30
    31# To resolve a conflict the following values are possible:
    32#   `null` - abort when collisions occur (default)
    33#   `"a wins"` - assume a's items to be more up-to-date
    34#   `"b wins"` - assume b's items to be more up-to-date
    35#conflict_resolution = null
    36
    37[storage bob_contacts_local]
    38# A storage references actual data on a remote server or on the local disk.
    39# Similar to repositories in OfflineIMAP.
    40type = "filesystem"
    41path = "~/.contacts/"
    42fileext = ".vcf"
    43
    44[storage bob_contacts_remote]
    45type = "carddav"
    46url = "https://owncloud.example.com/remote.php/carddav/"
    47#username =
    48# The password can also be fetched from the system password storage, netrc or a
    49# custom command. See http://vdirsyncer.pimutils.org/en/stable/keyring.html
    50#password =
    51
    52# CALDAV
    53[pair bob_calendar]
    54a = "bob_calendar_local"
    55b = "bob_calendar_remote"
    56collections = ["from a", "from b"]
    57
    58# Calendars also have a color property
    59metadata = ["displayname", "color"]
    60
    61[storage bob_calendar_local]
    62type = "filesystem"
    63path = "~/.calendars/"
    64fileext = ".ics"
    65
    66[storage bob_calendar_remote]
    67type = "caldav"
    68url = "https://owncloud.example.com/remote.php/caldav/"
    69#username =
    70#password =
    

3.2 Синхронизация с Google

3.3 Синхронизация с Office 365

3.4 Синхронизация с Yandex

3.5 Синхронизация с Fuux

4 Утилиты для работы с vdir

5 Работа из Emacs

6 Обслуживание

6.1 Запуск через таймер systemd

  • Дистрибутив включает файлы модулей для запуска с определённым интервалом (по умолчанию каждые 15 ± 5 минут).

  • Файл vdirsyncer.service:

    1[Unit]
    2Description=Synchronize calendars and contacts
    3Documentation=https://vdirsyncer.readthedocs.org/
    4
    5[Service]
    6ExecStart=/usr/bin/vdirsyncer sync
    7RuntimeMaxSec=3m
    8Restart=on-failure
    
  • Файл vdirsyncer.timer:

     1[Unit]
     2Description=Synchronize vdirs
     3
     4[Timer]
     5OnBootSec=5m
     6OnUnitActiveSec=15m
     7AccuracySec=5m
     8
     9[Install]
    10WantedBy=timers.target
    
  • Для запуска на уровне пользователя скопируйте их в каталог ~/.config/systemd/user.

  • Для активации и запуска выполните:

    1systemctl --user enable vdirsyncer.timer
    2systemctl --user start vdirsyncer.timer
    

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие