Please KIS Me

"Half a hectare of land and one year of labour were required to feed one person in 1900 whereas that same half-hectare now feeds 10 persons on the basis of just one and a half days of labour. The difference lies in the scientific knowledge[...]" UNESCO Science Report 2005

Tuesday, December 08, 2009

"Wireless" Phone Backup using FTP

One of the most interesting things of Android phones, and specifically my HTC Magic, is the possibility to sync every application with the cloud. My contacts are sync with Google contacts, my email is stored on a IMAP server, the Calendar with Google Calendar... most of my Personal Information is thus in sync. This is great in the case you loose your phone or it is stolen as you can recover most of the information easily and without struggling. The only thing I missed (a bit) was the possibility to sync the contents of my microSD Card. The point is that microSD contents is huge, 8Gb, and thus syncing this with the cloud would have a big impact on maintenance cost in any of the webservices offering this (Amazon S3, mainly).

So, I have opted for a cheaper solution and is to use ftp sync while in my home network. The idea is, once I arrive to my home I usually activate Wifi on my phone for browsing and email reading so just installed an small ftp server on the phone, SwiFTP, that is an Open Source project hosted in Google Code. This ftp must be manually activated and is protected with simple username and password. I expect it to continually grow and, why not, have a simple daemon that detects when are you at your home network and when this happens, just activate the ftp server.

Once the server is up and running on the Android phone the backup system must be set up. I am using my Kubuntu home server as the backup system. Basically I have installed curlFTPFS on the Linux server and just mount the ftp connection to the Android phone as an additional local folder. The backup space is protected with Truecrypt on the computer so I have to mount two different folders, the ftp server on ~/android and the encrypted volume on ~/androidbak. Once these two volumes are mounted I can use the superb rsync linux tool to sync them unattended and keeping only the files in my Android phone.

Next step is to automatize all that stuff as much as possible: Automatically setting up the server when arriving at home and mounting the volumes in the backup system, as well as scheduling the backup to be perform without noticing, maybe at night when charging the phone. But this is something I am still working on and hope soon to get along with it.

The most impressive thing about all that is everything I needed was Open Source and set up in a couple of hours... this is simplification!!!

Labels: , , , , , , ,