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:
- gcp.py (man page gcp)
- gls.py (man page gls)
- gmkdir.py
- gmv.py
- grm.py
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!