web-dev-qa-db-fra.com

Syncevolution dans cronjob pour synchroniser le téléphone Ubuntu via caldav / arddav

Je veux synchroniser mes contacts et mon calendrier depuis mon téléphone Ubuntu vers un serveur owncloud auto-hébergé. Puisqu'il n'y a pas encore de support prêt à l'emploi, j'ai essayé this explication. Cependant, cela ne fonctionne que depuis le terminal sur le téléphone Ubuntu. Si j'essaye

syncevolution --sync slow owncloud calendar

sur adb ou d'un cronjob, je reçois

creating source registry: Cannot autolaunch D-Bus without X11 $DISPLAY

Est-ce que quelqu'un peut m'aider s'il vous plait?

1
tobsto

J'ai compris que "syncevolution --sync slow owncloud calendar" ne devrait être utilisé que pour la première synchronisation.

Après cela, vous devez utiliser:

syncevolution owncloud calendar

Pour faire un travail cron, j'ai le même problème. Une solution qui fonctionne pour moi est:

Méthode 1:

export DISPLAY=:0.0 && export DBUS_SESSION_BUS_ADDRESS=Yourdbussessioadress && /usr/bin/syncevolution owncloud calendar

Pour obtenir Yourdbussessioadress:

echo $DBUS_SESSION_BUS_ADDRESS

Méthode 2: J'ai mis ces commandes dans un script syncevolution.sh comme ça:

#!/bin/sh
# Synchronisation des calendriers syncevolution
export DISPLAY=:0.0 
export DBUS_SESSION_BUS_ADDRESS=Yourdbussessioadress 
syncevolution owncloud calendar

exit 0

J'ai placé ce script dans/home/phablet/bin, je l'ai rendu exécutable et je l'ai fait dans crontab -e

@daily sh /home/phablet/bin/synccalendar.sh

Je suis toujours coincé sur une chose. La valeur $ DBUS_SESSION_BUS_ADDRESS est en train de changer au redémarrage d'ubuntu. J'ai un autre script sur Internet (en utilisant la commande sed) pour mettre la bonne valeur de $ DBUS_SESSION_BUS_ADDRESS dans le script syncevolution.sh. J'ai mis ce script dans /etc/rc.local pour faire le travail au redémarrage d'ubuntu. Mais cela ne fonctionne pas pour moi (c'est comme $ DBUS_SESSION_BUS_ADDRESS est vide juste après le redémarrage)

Si quelqu'un pouvait aider davantage.

MISE À JOUR 22/04/15:

Remplacez "export DBUS_SESSION_BUS_ADDRESS = Yourdbussessioadress" par ces commandes:

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)

Cela fonctionne comme un charme pour moi (testé avec la méthode 2 en utilisant un script sh où "phablet" est l'utilisateur par défaut d'ubuntu touch). Merci à un forum KDE où j'ai trouvé ces lignes de commandes.

(Étapes suivantes:

  1. Trouvez un moyen de faire une sauvegarde de photos sur un serveur personnel avec rsync en utilisant ssh et pourquoi pas après une sauvegarde de SMS & MMS, certains fichiers de configuration, ...

  2. Montez un serveur sftp sur ubuntu touch)

5
alexandre_payet