cronjob 中的 Syncevolution 通过 caldav/arddav 同步 ubuntu 手机

cronjob 中的 Syncevolution 通过 caldav/arddav 同步 ubuntu 手机

我想将我的联系人和日历从 Ubuntu Phone 同步到自托管的 o​​wncloud 服务器。由于目前还没有现成的支持,我尝试了解释。但是,这只适用于 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 论坛,我在那里找到了这些命令行。

(下一步 :

  1. 找到一种方法,使用 ssh 通过 rsync 备份个人服务器上的照片,为什么不在备份 SMS&MMS、一些配置文件之后……

  2. 在 ubuntu touch 上挂载 sftp 服务器)

相关内容