Viele Hoster stellen Backup-Speicherplatz via FTP bereit. Ärgerlich ist es, dass man zunächst sein Backup lokal erstellen muss um es dann via FTP auf den Backup-Server zu übertragen. Man muss also den Speicherplatz, den man auf dem FTP-Server nutzen will, auch lokal vorhalten.
Für dieses Problem gibt es zum Glück eine elegante Lösung: curlftpfs bindet via FTP erreichbare Resourcen ins Dateisystem ein.
Zunächst braucht man einen Kernel mit FUSE-Unterstützung. Den bringt Debian etch zum Glück gleich mit. Das Modul fuse
muss geladen werden. Wenn das Gerät /dev/fuse
existiert, ist alles gut gegangen:
# modprobe fuse && ls -la /dev/fuse
Dann brauchen wir die fuse-utils und curlftpfs:
# sudo aptitude install fuse-utils curlftpfs
Damit wäre der schwierige Teil erledigt 😉 Jetzt kann man einen kleinen Test wagen:
$ mkdir sunet # curlftpfs ftp://ftp.sunet.se/ sunet/ # cd sunet/ # ls -l total 0 Dr-xr-xr-x 3 root root 96 Feb 23 2004 bin dr-xr-xr-x 2 root root 72 Mar 2 2004 dev dr-xr-xr-x 2 root root 48 Feb 23 2004 etc dr-xr-xr-x 2 root root 120 Feb 23 2004 lib -rw-r--r-- 1 root root 622187310 Mar 11 06:13 ls-lR -rw-r--r-- 1 root root 76389037 Mar 11 06:15 ls-lR.gz drwxrwxr-x 37 root root 1272 Feb 27 14:17 pub dr-xr-xr-x 3 root root 72 Feb 23 2004 usr # cd .. # fusermount -u sunet/
Prima, dann kann also der zugewiesene FTP-Space ins Dateisystem eingebunden werden. Der folgende Eintrag in der /etc/fstab
erledigt das automatisch zum Systemstart:
curlftpfs#user:password@11.22.33.44 /media/ftp-backup fuse rw,uid=1000,user,auto 0 0
Der einzige Nachteil ist, dass jetzt das FTP-Passwort in /etc/fstab
steht. In dem Fall muss man sie mit
# chmod 640 /etc/fstab
schützen. Wir mounten und testen kurz:
# sudo mount /media/ftp-backup # sudo ls /media/ftp-backup -la total 4 drwxr-xr-x 1 melle root 1024 Jan 1 1970 . drwxr-xr-x 4 root root 4096 Jul 12 22:04 .. # mount | grep ftp curlftpfs on /media/ftp-backup type fuse (rw,nosuid,nodev,noexec)
Das Problem wäre gelöst, das Backup-Programm kann jetzt direkt nach /media/ftp-backup
scheiben. Wie man vernünftige Backups anfertigt, wird Inhalt des nächsten Artikels in dieser kleinen Serie sein.
Zum nächsten Teil: Niemand will Backup, alle wollen Restore! »
Zum ersten Teil: Debian Etch auf einem Rootserver mit Raid-1 und LVM »
Machst Du Deine Backups mit dirvish (http://dirvish.org)? Davon bin ich ja hochgradig angetan…
Dirvish nutzt Hardlinks, das wird auf einem curlftpfs nicht klappen und wäre auch relativ sinnfrei. Ich wollte eher „klassisch“ herangehen, also tar und co.
hi melle,
interessanter ansatz! vorallem die tatsache, dass sich so backups direkt auf einem FTP realsieren lassen, ohne diese backups vorher lokal zu erstellen!
ich habe die FTP ressourcen nach dem eintrag in „etc/fstab“ erfolgreich mittels „# sudo /media/ftp-backup“ mounten können und kann die verzeichnisstruktur einsehen… soweit so gut … doch wenn ich versuche, dort ein verzeichnis mittels „mkdir“ zu erstellen, eine datei auf das neu eingebunden drive zu kopieren, oder eine datei zu löschen, bricht die verbindung ab…
hast du eine idee, woran das liegen könnte?
thx,
swell
curlftpfs basiert auf der libcurl, die im Moment ein paar Fehler hat, siehe
http://curlftpfs.sourceforge.net/
Ich habe curlftpfs wieder ausgemustert, weil ein stabilier Betrieb mit der in debian etch mitgelieferten libcurl-Bibliothek nicht möglich ist.
I want to use curlftpfs as well, but the server I have to use only supports active ftp, but curlftpfs is trying to connect over passive ftp mode.
Do you know a way to tell curlftpfs to use active mode?
thanks