cronjob中的同步进化通过caldav / arddav同步ubuntu手机
我想将我的联系人和日历从我的Ubuntu手机同步到自托管的owncloud服务器。 由于还没有开箱即用的支持,我尝试了这个解释。 但是,这只能在ubuntu手机的终端内使用。 如果我试试
syncevolution --sync slow owncloud calendar
从adb或cronjob,我得到
creating source registry: Cannot autolaunch D-Bus without X11 $DISPLAY
谁能帮帮我吗?
我已经明白“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
获得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
我仍然坚持一件事。 在重新启动ubuntu时,$ DBUS_SESSION_BUS_ADDRESS值正在更改。 我在互联网上有另一个脚本(使用命令sed)将$ DBUS_SESSION_BUS_ADDRESS的好值放在syncevolution.sh脚本中。 我把这个脚本放在/etc/rc.local中来完成重启ubuntu的工作。 但它对我不起作用(就像$ DBUS_SESSION_BUS_ADDRESS刚刚重启后为空)
如果有人可以帮助更多。
更新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)
它对我来说就像一个魅力(使用方法2使用sh脚本进行测试,其中“phablet”是ubuntu touch的默认用户)。 感谢KDE论坛,我找到了这些命令行。
(下一步 :
-
使用ssh找到一种使用rsync在个人服务器上备份照片的方法,为什么不在备份SMS&MMS,一些配置文件,……之后
-
在ubuntu touch上安装sftp服务器)