Синхронизация в Cronjob для синхронизации телефона Ubuntu через Caldav/ Arddav

Я хочу синхронизировать свои контакты и календарь с телефона Ubuntu на собственный сервер 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 пусто сразу после перезагрузки)

Если бы кто-то мог помочь больше.

ОБНОВЛЕНИЕ 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, где я нашел эти строки команд.

(Следующие шаги:

  1. Найдите способ сделать резервную копию фотографий на личном сервере с помощью rsync, используя ssh, и почему бы не сделать резервную копию SMS и MMS, некоторых файлов конфигурации, ...

  2. Смонтируйте sftp сервер на Ubuntu Touch)

Другие вопросы по тегам