我想将我的联系人和日历从 Ubuntu Phone 同步到自托管的 owncloud 服务器。由于目前还没有现成的支持,我尝试了这解释。但是,这只适用于 ubuntu 手机上的终端。如果我尝试
syncevolution --sync slow owncloud calendar
通过 adb 或 cronjob,我得到
creating source registry: Cannot autolaunch D-Bus without X11 $DISPLAY
谁能帮帮我吗?
答案1
我理解“syncevolution --sync slow owncloud calendar”应该只用于第一次同步。
之后你应该使用:
syncevolution owncloud calendar
要执行 cron 作业,我遇到了同样的问题。对我有用的一个解决方案是:
方法 1:
export DISPLAY=:0.0 && export DBUS_SESSION_BUS_ADDRESS=Yourdbussessioadress && /usr/bin/syncevolution owncloud calendar
获取你的总线地址:
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 重启时会发生变化。我在网上找到了另一个脚本(使用 sed 命令),用于将 $DBUS_SESSION_BUS_ADDRESS 的正确值放入 syncevolution.sh 脚本中。我已将此脚本放入 /etc/rc.local 中,以便在 ubuntu 重启时执行此工作。但它对我不起作用(就像 $DBUS_SESSION_BUS_ADDRESS 在重启后为空一样)
如果有人能提供更多帮助。
更新日期:2015/4/22:
用以下命令替换“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)
对我来说,它非常有效(使用方法 2 测试,使用 sh 脚本,其中“phablet”是 ubuntu touch 的默认用户)。感谢 KDE 论坛,我在那里找到了这些命令行。
(下一步 :
找到一种方法,使用 ssh 通过 rsync 备份个人服务器上的照片,为什么不在备份 SMS&MMS、一些配置文件之后……
在 ubuntu touch 上挂载 sftp 服务器)