Синхронизация в 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, где я нашел эти строки команд.
(Следующие шаги:
Найдите способ сделать резервную копию фотографий на личном сервере с помощью rsync, используя ssh, и почему бы не сделать резервную копию SMS и MMS, некоторых файлов конфигурации, ...
Смонтируйте sftp сервер на Ubuntu Touch)