1つのwget / curlを使ってすべての私のCaldavとCardDavのデータをダウンロードする方法
質問
これまで、Google Calender
を使用し、wget
Linkの毎日のpublic ".ics"
を使用して個人用バックアップを実行しました。
今caldav
Accessのみを持つ新しいサービスに切り替えたい。
1つのcaldav
/ carddav
を使用して、wget
とcurl
データをすべてダウンロードする可能性がありますか?
このダウンロードしたデータは、失われたデータをバックアップする可能性を教えてください。
事前にありがとうございました。
編集
私はHMHが説明する方法で機能する非常に単純なPHPファイルを作成しました。このようにしてさまざまなプロバイダに対して機能するかどうかわからないが、mailbox.orgにはうまく機能します。
ここで見つけることができます https://gist.github.com/ahemwe/a2aae4d56ac85969cf2 。
解決
もっと具体的には、使用している新しいサービス/サーバーは何ですか?
これは特にCALDAVではありませんが、ほとんどのDAVサーバーはまだ単一のGETを使用してすべてのイベント/ TODOをつかむ方法を提供します。通常、GET、例えば、関連コレクションをターゲットにすることによって。そのどちらかのように:
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home/
curl -X GET -u login -H "Accept: text/calendar" https://myserver/joe/home.ics
.
Caldav / CardDavのPropFindを使用してコレクションの全体の内容をつかむことができます。
curl -X PROPFIND -u login -H "Content-Type: text/xml" -H "Depth: 1" \
--data "<propfind xmlns='DAV:'><prop><calendar-data xmlns='urn:ietf:params:xml:ns:caldav'/></prop></propfind>" \
https://myserver/joe/home/
.
カレンダーデータを
に置き換える<address-data xmlns="urn:ietf:params:xml:ns:carddav"/>
.
CardDav。
これにより、ICAL / VCARDの内容が埋め込まれているXMLエンティティが得られます。復元するには、XMLを解析してデータを抽出する必要があります(ハードではありません)。
注:平野標準では、一部のサーバーはそれを拒否するか、コンテンツを省略する(LAME!ファイルバグレポート; - )。
他のヒント
baɪkal(>= 0.3.3;その他のSaber / DAVベースのソリューションは同様)、あなたは直接
に行くことができますhttps://<Baïkal location>/html/dav.php/
.
ブラウザでICSファイルをダウンロードすることを可能にするHTMLインタフェースを取得することで、CURL / WGGGETで使用するための正しいリンクを見つけることもできます。
私は私のために働かなかった受け入れられた答えを試しました。ただし、CALDAVカレンダープロバイダーを使用すると、
を使用してすべてのカレンダーファイルを取得できます。wget -c -r -l 1 -nc --user='[myuser]' --password='[mypassword]' --accept=ics '[url]'
.
ここで[myuser]
と[mypassword]
があなたが期待しているもので、[url]
は、通常のCaldavソフトウェアに入力するものと同じURLです(プロバイダで指定されているように)。
カレンダー項目を表すすべてのICSファイルを含むディレクトリを作成します。私のアドレスブックにも同様のコマンドが機能します。