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
- png
- rtf
- txt
Presentations :
- png
- ppt
- swf
- txt
- zip
- html
- odt
Feuilles de calculs :
- xls
- ods
- txt
- html
- 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/