move data via davical

投稿日:

サーバをAWSに乗り換えたので、davicalもAWSのUbuntu12の移行した。

ソフトウェアの移行はすんなりいったが、データ(スケジュール)の移行はちょっと手間取ったのでメモ。

1. 旧データのexport

davicalは、カレンダー毎の識別子を「principal」という方式で管理している。
ユーザ毎ではなく、カレンダー毎、例えば自分のカレンダーを「仕事」、「プライベート」というように分けて管理している場合は、それぞれ異なるprincipalがある。

例えば、以下のように「vuzu/1EB5BB1F-41EC-48E1-AE1E-A1A10A29BF95/」という識別子がついている。

davical_principal_collection.png

davical自体には、「これどうぞ!」というようなスケジュールのexportはないが、認証情報&URLがわかれば、princival毎に簡単にファイルに取得できる。
たとえば、こんなshを書けばいい。

#!/bin/sh
 
for i in D7A4E545-9212-4724-8A52-28D7860660A6 # princivals
do
    wget --http-user=ユーザ名 --http-passwd=パスワード https://サイト名/caldav.php/ユーザ名orグループ名/$i --no-check-certificate -o data/$i.log -O data/ユーザ名.ics
done

上記shで作成したファイル「pricival名/ユーザ名.ics」をdavicalサーバに転送し、davivalの管理画面を利用してimportする。
下記の例は、ファイル「pricival名/ユーザ名.ics」を「/tmp/xx」において、ユーザ「vizu」、princival「D7A4E545-9212-4724-8A52-28D7860660A6」をimportしたもの。

davical_import.png