Sauvegarde de l’agenda d’Owncloud/Nextcloud

Suite, notamment, à mon passage d’Android à CyanogenMod, j’ai choisi de migrer mon agenda de Google à Owncloud. Une fois les modifications faites, sur le serveur et sur mon smartphone, il reste la question de la sauvegarde de l’agenda. Je vais expliquer dans ce billet comment on peut:

  1. Faire une sauvegarde automatique de l’agenda (chaque jour, chaque semaine)
  2. L’enregistrer sur un autre serveur (via FTP)

Je vais supposer qu’Owncloud est installé sur un serveur tournant sur Ubuntu (dans mon cas, Ubuntu LTS 14.04.3) et que l’on a un accès SSH root sur le serveur.

Récupérer les informations

Supposons que le nom d’utilisateur de mon compte Owncloud soit rafael. Comme il contient un certain nombre de choses (fichiers, contacts, …) je n’avais pas envie de laisser traîner le mot-de-passe de ce compte sur mon serveur dédié. J’ai donc créé un autre compte, rafael_backup et j’ai partagé les calendrier de rafael vers rafael_backup. Ainsi, le second compte n’a accès qu’aux agenda.

Depuis Owncloud, il faut commencer par récupérer l’adresse de l’agenda. Dans les calendrier, il y a le bouton download pour exporter le calendrier, comme on le voit sur l’image suivante:

owncloud_agenda_export

Une fois l’agenda sauvegardé sur votre ordinateur, vous pouvez récupérer l’adresse de télécharger. Chez moi, cela donne quelque chose comme:

https://owncloud.monserveur.ch/remote.php/dav/calendars/rgugliel_bck/default-1_shared_by_rgugliel?export

On retrouve dans les paramètres:

  • le nom d’utilisateur (rgugliel_bck)
  • le nom du calendrier (default-1_shared_by_rgugliel)

Créer le script de sauvegarde

 
#!/bin/bash
DATE=`date +"%Y-%m-%d"`

# Telechargement et gzip
wget --auth-no-challenge --no-clobber --http-user=rgugliel_bck --http-password=PASSWORD -O $HOME/backups/owncloud-calendars/default-$DATE.ics "https://owncloud.monserveur.ch/remote.php/dav/calendars/rgugliel_bck/default-1_shared_by_rgugliel?export"
gzip -f $HOME/backups/owncloud-calendars/default-$DATE.ics

cd $HOME/backups/owncloud-calendars/

ftp ftp.monserveurftp.ch << END_SCRIPT
put default-$DATE.ics.gz
END_SCRIPT

On a dans le script de sauvegarde les éléments suivants:

  • A là ligne 6, le téléchargement de l’agenda. Les paramètres suivants sont à modifier:
    rgugliel_bck : nom d’utilisateur Owncloud
    $HOME/backups/owncloud-calendars/default-$DATE.ics : où sera enregistré l’agenda
    https://owncloud.monserveur.ch/remote.php/dav/calendars/rgugliel_bck/default-1_shared_by_rgugliel?export : l’adresse du calendrier, récupérée précédemment
  • A là ligne 6, on compresse le calendrier.
  • Les dernières lignes servent à sauvegarder les fichiers sur un FTP distant

Identification pour le FTP distant

Comme vous l’avez probablement constaté, le script précédent ne semble pas gérer l’identification sur le FTP distant.

J’utilise pour cela un fichier .netrc, sauvegardé dans mon home, qui contient les informations de connexion. Dans mon cas, cela donne:

 
machine hostOfTheFTP
login usernameForTheFTP
password passwordForTheFTP

Finalisation

Plus qu’à créer une tâche planifiée pour le sauvegarde, et vérifier que tout se passe bien périodiquement.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *