La sauvegarde de ses données est quelque chose que l’on ne doit pas prendre à la légère, j’ai déjà couvert le sujet à plusieurs reprise :

Sauvegarde avec rSnapshot, configuration complète
Sauvegarder un PC Windows avec rSnapshot, configuration complète
Sauvegarder un site Internet (blog) hébergé chez Free.fr avec rSnaphot


J’ai ainsi mes PCs Linux et mon blog sauvegardé toutes les nuits, par contre mes documents hébergé sur Google Documents ne l’étaient pas jusqu’à peu.


Pour ce faire on utilisera un script Python nommé gdatacopier, que l’on va « piloter » via un script bash lui même appelé par rSnapshot pour gérer la rotation des sauvegardes.


Installation

Pré-requis

Gdatacopier dépend de package Python  python-gdata.

Ce dernier est présent dans les dépôt Ubuntu, mais il est en version 1.2.4 or gdatacopier nécessite la version 2.0.2 au moins, il faut donc l’installer à la main :


On télécharge l’archive sur le site http://code.google.com/p/gdata-python-client/

wget http://gdata-python-client.googlecode.com/files/gdata-2.0.7.zip


On décompresse cette archive et on lance le setup :

unzip gdata-2.0.7.zip
cd gdata-2.0.7
./setup.py install


Vous pourrez si vous le souhaitez tester le bon déroulement de l’installation en lançant une série de test via le script run_data_tests.py présent dans le sous-répertoire tests de gdata.



Gdatacopier

Pour installer Gdatacopier c’est encore plus compliqué, on télécharge et on décompresse :


wget http://gdatacopier.googlecode.com/files/gdatacopier-2.1.tgz
tar -xvf gdatacopier-2.1.tgz


Cela créé un répertoire du même nom que l’archive contenant 5 scripts Pythons :

  • gls – Liste les documents
  • gcp – exporte et importe des documents
  • gmkdir – créé un répertoire dans Google docs
  • grm – supprime des documents/répertoires
  • gmv – déplace de documents


Tests

Pour tester simplement on pourra exécuter la commande suivante :

./gls.py mon_user_gmail@gmail.com:/


Ce qui doit donner une sortie du genre (avec vos documents évidemment) :

gls 2.1, document list utility. Copyright 2010 Eternity Technologies

Released under the GNU/GPL v3 at <http://gdatacopier.googlecode.com>
Password:
Logging into Google server as mon_user_gmail@gmail.com ... done.
Fetching document list feeds from Google servers for mon_user_gmail@gmail.com ... done.
 
spreadsheet    mon_user_gmail      Feb 04 2010 14:59 Societe
document       mon_user_gmail      May 14 2009 14:42 Nova  T 500
document       mon_user_gmail      Apr 29 2009 13:32 Freevo
...
document       mon_user_gmail      Dec 07 2007 15:21 Wake on Wan
41 document(s), 3 spreadsheet(s), 0 presentation(s), 0 pdf(s)



Création d’un script de sauvegarde

La sauvegarde de documents de Google Documents vers votre PC se fait avec la commande gcp  qui prend entre autres arguments :

  • le format de sauvegarde du document
  • le répertoire ou le type de documents à sauvegarder
  • le répertoire de sortie
  • le login / mot de passe de connexion a Google


Les formats de sorties supportés sont :

Documents :

  • doc
  • html
  • zip
  • odt
  • pdf
  • png
  • rtf
  • txt

Presentations :

  • pdf
  • png
  • ppt
  • swf
  • txt
  • zip
  • html
  • odt

Feuilles de calculs :

  • xls
  • ods
  • txt
  • html
  • pdf
  • tsv
  • csv


J’ai donc fait un script qui sauvegarde tous mes documents en pdf/odt/doc et toutes mes feuilles de calculs en pdf/pds/xls :


#!/bin/sh 
 
BACKUP_DIR=repertoire_de_sauvegarde
USERNAME="mon_user_gmail"
PASSWORD="mon_mot_de_passe"
GDATACOPIER=/home/user/bin/gdatacopier
 
 
mkdir -p $BACKUP_DIR
 
for format in pdf doc odt
do
    $GDATACOPIER/gcp.py -o -f ${format} -u -p $PASSWORD $USERNAME:/docs $BACKUP_DIR
done
 
for format in pdf xls ods
do
    $GDATACOPIER/gcp.py -o -f ${format} -u -p $PASSWORD $USERNAME:/sheets $BACKUP_DIR
done


Intégration avec rSnapshot

Comme je l’avais indiqué pour la sauvegarder d’un blog, rSnapshot est capable d’éxécuter un script dans un répétoire temporaire qu’il crée puis ensuite de sauvegarder tout le contenu de ce répertoire temporaire dans l’arborescence de sauvegarde (daily.0, daily.1, etc)


Il suffit donc de mettre un répertoire de sauvegarde en chemin relatif dans le script ci dessus (j’ai mis .) et d’ajouter une ligne du type à votre fichier rSnapshot.conf :

backup_script    /home/user/bin/backupGoogleDocs.sh    gDoc


(ATTENTION à remplacer les espaces par des tabulations)



Sources :

Photo de Erica Marshall of muddyboots.org, sous CC BY-NC-SA

Page du projet python_gdata : http://code.google.com/p/gdata-python-client/

Page du projet gDatacopier : http://code.google.com/p/gdatacopier/


Implémentation de gdatacopier (mais d’une ancienne version) :

http://www.theunixzone.com/2009/02/24/backing-up-your-google-docs/

http://gnuyoga.wordpress.com/2009/08/15/gdata-copier-and-scrum-sheet-backup/

Les commentaires sont fermés.