Google Docs logo
Google Docs logo

De documenten van Google Docs staan naar mijn idee op een betrouwbare plaats, Google heeft dat goed voor elkaar. Maar toch vind ik het fijn om mijn documenten thuis op mijn eigen server te hebben. Bijvoorbeeld in het geval dat de Google Docs service eruit ligt, account afgesloten etc. Dit kun je in Google Docs met de hand doen, maar in dit artikel lees je hoe dit geautomatiseerd te doen. Dit is getest met Ubuntu , maar werkt natuurlijk ook voor andere Linux varianten.

Downloaden en uitpakken van gdatacopier en gdata-python-client

Typ de volgende commando’s in een console:

$ cd
$ wget http://gdatacopier.googlecode.com/files/gdatacopier-2.1.2.tgz
$ wget http://gdata-python-client.googlecode.com/files/gdata-2.0.13.tar.gz

Opmerking: controleer voor het downloaden of er geen nieuwere versie beschikbaar zijn van gdatacopier en gdata-python-client

Pak ze uit met:

$ tar xzf gdatacopier-2.1.2.tgz
$ tar xzf gdata-2.0.13.tar.gz

Het installeren van de gdata-python-client

Voordat je gaat installeren, eerst even controleren of de ElementTree module aanwezig is in Python:

$ python
>>> from xml.etree import ElementTree

Als bij het uitvoeren van het commando geen foutmelding gegeven wordt, dan is de ElementTree module aanwezig. Als dit niet het geval is, kijk dan in de gdata-2.0.13 directory in  INSTALL.txt file. Hier staat het nodige erover geschreven.

Nu kunnen we de gdata-python-client gaan installeren in je home directory of als in mijn geval de /usr/local/sbin directory:

$ cd gdata-2.0.13
$ sudo python setup.py install –home=/usr/local/sbin
$ cd ..

Voeg de PYTHONPATH environment var toe aan bashrc, zodat het gdatacopier script deze kan vinden:

$ vi /etc/bash.bashrc
PYTHONPATH=/usr/local/sbin/lib/python
export PYTHONPATH

Installeren van de gdatacopier

Nu gaan we naar de gdatacopier scripts te kopiëren naar de /usr/local/sbin/lib/python directory:

$ sudo cp -r gdatacopier-2.1.2 /usr/local/sbin/lib/python
$ cd /usr/local/sbin/lib/python
$ sudo ln -s gdatacopier-2.1.2 gdatacopier

De volgende commando’s zijn nu beschikbaar in de gdatacopier directory:

Dit is een voorbeeld voor het gebruik van gcp.py:

$ /usr/local/sbin/lib/python/gdatacopier/gcp.py -p 'your_password' your_username@gmail.com:/* ~/GoogleDocsBackup/

Het backup script voor de periodieke backup

Met het volgende script kun je een backup maken, van al je documenten naar de docs directory en de spreadsheets om de sheets direcory. Het wordt opgeslagen als .xls en .doc, maar dit kun je zelf wijzigen.

$ vi /usr/local/sbin/backup_googledocs

#!/bin/bash
PYTHONPATH=/usr/local/sbin/lib/python
export PYTHONPATH
USERNAME=your_username
PASSWORD='your_password'

GCP=/usr/local/sbin/lib/python/gdatacopier/gcp.py
LOG_FILE=/tmp/backup_googledocs.log
RETVAL=0

# Backup the spreadsheets from Google Docs
$GCP -o -p $PASSWORD -f xls $USERNAME@gmail.com:/sheets/* /home/user/Nas/GoogleDocsBackup/sheets > $LOG_FILE
if [ $? -ne 0 ]
then
    echo "backup_googledocs: gcp.py returned an error while copying docs" >> $LOG_FILE
    RETVAL=1
fi

# Backup the documents from Google Docs
$GCP -o -p $PASSWORD -f doc $USERNAME@gmail.com:/docs/* /home/user/Nas/GoogleDocsBackup/docs >> $LOG_FILE
if [ $? -ne 0 ]
then
    echo "backup_googledocs: gcp.py returned an error while copying docs" >> $LOG_FILE
    RETVAL=1
fi

if [ $RETVAL -ne 0 ]; then
    echo "backup_googledocs: ERROR detected while backuping Google Docs, send a mail to report this!" >> $LOG_FILE
    mail -s  "The backup of Google Docs failed" $USERNAME@gmail.com $LOG_FILE < $LOG_FILE
    exit 1
else
    echo "backup_googledocs: No ERROR detected while backuping Google Docs" >> $LOG_FILE
    mail -s  "The backup of Google Docs was successful" $USERNAME@gmail.com < $LOG_FILE

    # mail -s  "The backup of Google Docs was successful, logfile included" $USERNAME@gmail.com $LOG_FILE
    exit 0
fi


$ chmod +x backup_googledocs

Het backup script elke dag automatisch laten draaien

Het is eenvoudig om in Ubuntu het script elke dag een keer te laten draaien:

$ cd /etc/cron.daily
$ sudo ln -s /usr/local/sbin/backup_googledocs

Nu zijn al je Google Docs bestanden fijn op je eigen machine en wordt dit ook nog eens automatisch geregeld!