Backup avec lftp 4.x
LFTP is sophisticated ftp/http client, file transfer program supporting a number of network protocols.
Site officiel : http://lftp.yar.ru/
Sur mon poste précèdent je vous parlez des soucis que j’avais eu avec les backups, et le protocole FTP, dans ce billet je vais expliquer pourquoi et comment utiliser la version 4.x de lftp sur une debian stable (en effet la branche < 4.0.6 de lftp est en testing à l’heure de ce billet).
Pourquoi LFTP 4 ?
En plus de fait que c’est une version supérieur à la version 3, qui en toutes logique (pas toujours c’est vrai) apporte son lot de mise à jours, et de correction de bugs !
Là où j’ai eu un gros soucis c’est avec les noms des fichiers/dossiers qui commence par un tilde (~). Si on regarde le changelog de lftp, il suffit de faire une recherche sur le mot tilde pour trouver deux dates importantes :
Version 3.5.2 – 2006-07-28
- Fixed mirror for files starting with a tilde.
Version 4.0.1 – 2009-09-17
- Fixed handling of files starting with a tilde in ftp.
Il existe une correction des fichiers qui commencent par un tilde avec l’option mirror, pour la version 3.5.2, effectivement la version de lftp est supérieur à 3.5.2 en stable, et mes fichiers sont bien tout synchronisés, le problème c’est avec l’option –delete de lftp :
1 | lftp bm -e "mirror --delete /source /dest;exit;" |
Cette option à pour effet de supprimer de la destination, les fichiers qui n’existe plus dans la source, afin de faire un véritable miroir.
Et là j’avais une erreur à chaque fois sur mes fichiers commençants par un tilde.
J’ai donc tout de suite testé le problème avec une version de lftp > 4.0.1 sur ma Gentoo, ainsi que sur ma Arch, et je n’avais plus le message d’erreur !
La question suivante a été de savoir si je compilais une version statique de lftp 4.0.1+ pour Grumpy, ou si je trouvais une solution pour installer directement l’outil depuis aptitude dans sa version testing !!
Le problème étant les dépendances, compiler chaque dépendances pour ensuite compiler l’outil en statique ne me semble pas être la solution la plus pérenne ! J’ai donc choisis la solution qui consiste à garder un système en stable, avec quelques outils en testing, on parle ainsi de système mixte !
Installer LFTP 4.0.1+ (testing) sur une Debian stable !
Cela s’adapte à tous les paquets des Debians, pas uniquement pour lftp
Il faut modifier le fichier /etc/apt/apt.conf ou créer un nouveau fichier dans /etc/apt/apt.conf.d/.
Définir le système par défaut
/etc/apt/apt.conf.d/99mixed
APT::Default-Release "stable";
Indiquer où sont les paquets en testing
Dans votre fichier /etc/apt/sources.list, il va falloir dupliquer toutes les lignes qui commencent par deb, et qui contiennent le mot « stable » et/ou le nom de la distribution « etch, lenny, … », puis changer le mot stable par testing, sur les lignes dupliqués, ainsi que le nom de la distribution par le nom de la distribution testing actuel (voir http://packages.debian.org/testing/) !
/etc/apt/sources.list (exemple)
deb http://ftp.fr.debian.org/debian squeeze main testing
Dans cette exemple, lenny est la version stable, je rajoute les paquets de squeeze qui est la version testing actuelle !
La suite est plutôt simple, et doit être adapté suivant le gestionnaire de paquet que vous utilisez habituellement :
aptitude
aptitude -t testing install lftp
apt-get
apt-get -t testing install lftp
Note importante : on le vois écrit trop peu souvent, mais il est important de toujours utiliser le même outil aptitude ou apt-get pour installer des paquets, la différence ce ressent surtout quand vous avez besoin de faire de la place, la gestion des dépendances est pas faite de la même façons entre les outils.