Schon lange besitze ich eine kostenlose E-Mailadresse bei gmx.net und gleichzeitig 1GB WebDAV-Speicherplatz, bei GMX “MediaCenter” genannt. Ausreichend Platz für Backups der wichtigsten Daten auf einem Server mit hervorragender Bandbreite dachte ich bereits 2004 und experimentierte mit dem Kommandozeilen-basierten WebDAV-Client cadaver. Nach etlichen fehlgeschlagenen Versuchen, den auf Interaktivität mit dem Nutzer ausgelegten Client zu automatisieren, gab ich auf.
Nach über zwei Jahren habe ich es heute mit Hilfe Don Libes expect doch geschafft: Ein Script auf meinem Server packt regelmäßig alle zwischenzeitlich veränderten Daten meiner Diplomarbeit in eine Archivdatei, nennen wir sie archiv.tgz. Brennt mein Server ab, wäre es nett, eine Kopie dieser Archivdatei im Verzeichnis diplom des GMX MediaCenters vorzufinden.
Nachdem ich einmal die Prozedur händisch vollzogen und alle Ein- und Ausgaben notiert hatte, schrieb ich die ausführbare Datei gmxSchuetzeMich.sh mit folgendem Inhalt:
#!/usr/bin/expect
set username [lindex $argv 0]
set password [lindex $argv 1]
set filename [lindex $argv 2]
spawn cadaver mediacenter.gmx.net
set timeout 240
expect “Username:” {send “$username\r”}
expect “Password:” {send “$password\r”}
expect “dav:/>” {send “cd diplom\r”}
expect “dav:/diplom/>” {send “put $filename\r”}
expect “dav:/diplom/>” {send “quit\r”}
Um die Datei archiv.tgz auf den Server zu laden, reicht von nun an folgende Zeile:
./gmxSchuetzeMich.sh fabian p455w0rt archiv.tgz
Die Ausgabe sieht so aus:
Authentication required for GMX MediaCenter on server `mediacenter.gmx.net':
Username: fabian
Password:
dav:/> cd diplom
dav:/diplom/> put archiv.tgz
Uploading archiv.tgz to `/diplom/archiv.tgz':
Progress: [=============================>] 100.0% of 1234567890 bytes succeeded.
dav:/diplom/>
Mal sehen, ob ich heute besser schlafe.
Nachtrag 15.10.2006: GMX hat ein Trafficlimit von 2GB und ich habe es erreicht. Das liegt weniger an meinem Fleiß bei der Diplomarbeitsproduktion als am tar-Parameter -h,
der brav meine symbolischen Links auf Ordner voll Mediendateien auflöst und mit ins Archiv packt. Ups und sorry.