web-dev-qa-db-ja.com

caldav / arddavを介してubuntu電話を同期するcronjobのSyncevolution

連絡先とカレンダーをUbuntuの電話からセルフホストのowncloudサーバーに同期したいのですが。すぐに使えるサポートはまだないので、 this の説明を試しました。ただし、これはubuntu電話のターミナル内からのみ機能します。私がしようとすると

syncevolution --sync slow owncloud calendar

adb経由またはcronjobから、私は得ます

creating source registry: Cannot autolaunch D-Bus without X11 $DISPLAY

誰か助けてくれますか?

1
tobsto

「syncevolution --sync slow owncloud calendar」は最初の同期にのみ使用する必要があることを理解しました。

その後、使用する必要があります:

syncevolution owncloud calendar

Cronジョブを実行するには、同じ問題があります。私のために働く1つの解決策は:

方法1:

export DISPLAY=:0.0 && export DBUS_SESSION_BUS_ADDRESS=Yourdbussessioadress && /usr/bin/syncevolution owncloud calendar

Yourdbussessioadressを取得するには:

echo $DBUS_SESSION_BUS_ADDRESS

方法2:これらのコマンドをsyncevolution.shスクリプトに入れます。

#!/bin/sh
# Synchronisation des calendriers syncevolution
export DISPLAY=:0.0 
export DBUS_SESSION_BUS_ADDRESS=Yourdbussessioadress 
syncevolution owncloud calendar

exit 0

このスクリプトを/ home/phablet/binに配置し、実行可能にして、crontab -eでこれを実行します

@daily sh /home/phablet/bin/synccalendar.sh

私はまだ一つのことにこだわっています。 $ DBUS_SESSION_BUS_ADDRESS値は、ubuntuの再起動時に変更されます。 syncevolution.shスクリプトに$ DBUS_SESSION_BUS_ADDRESSの適切な値を配置するために(sedコマンドを使用して)インターネット上に他のスクリプトを持っています。このスクリプトを/etc/rc.localに置いて、ubuntuの再起動時にジョブを実行します。しかし、それは私には機能しません(再起動直後は$ DBUS_SESSION_BUS_ADDRESSが空のようです)

誰かがもっと助けてくれるなら。

PDATE 22/04/15:

「export DBUS_SESSION_BUS_ADDRESS = Yourdbussessioadress」を次のコマンドで置き換えます。

export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35)

それは私にとっては魅力のように機能します(「phablet」がubuntu touchのデフォルトユーザーであるshスクリプトを使用して方法2でテストされました)。これらのコマンドラインを見つけたKDEフォーラムに感謝します。

(次のステップ:

  1. sshを使用してrsyncでパーソナルサーバー上の写真のバックアップを作成する方法を見つけ、SMS&MMS、一部の構成ファイル、...のバックアップ後

  2. ubuntu touchにsftpサーバーをマウントします)

5
alexandre_payet