Dernière mise à jour : 22/04/2007.

wget

Tous deux sont des outils en ligne de commande pour récupérer des fichiers sur des serveurs web. wget est certainement le plus simple à utiliser puisque que pour récupérer un fichier il suffit de faire :

$ wget http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-cd/debian-testing-i386-binary-1.iso

Ceci créera ou écrasera le fichier debian-testing-i386-binary-1.iso dans le répertoire courant. S'il s'agit de poursuivre un téléchargement interrompu, une petite option -C fait l'affaire de sorte qu'on la mettra toujours par principe de précaution, histoire de ne pas écraser les 3 Go déjà téléchargés en allant trop vite dans l'historique des commandes :

$ wget -C http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-cd/debian-testing-i386-binary-1.iso

Mais voilà, wget, sur les versions un peu anciennes[1], ne gère pas les fichiers plus gros que 2 Go et des poussières. Dans le meilleur des cas, il accepte de faire le téléchargement et le continue au-delà de sa limite théorique (donc jusqu'à la fin du téléchargement), mais il ne faut surtout pas l'interrompre au-delà de la limite fatidique des 2 Go sinon il ne reprendra pas le téléchargement qu'il croit fini ! Dans le pire des cas, il s'arrête bien avant la fin du fichier, par exemple à 400 Mo, croyant avoir atteint la taille finale du fichier.

curl

C'est la qu'il faut opter pour curl qui lui gère les fichiers de plus de 2 Go. Pour faire le téléchargement du même fichier, la commande est :

$ curl -O http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-dvd/debian-testing-i386-binary-1.iso

En effet par défaut le téléchargement atterrit dans la sortie standard, d'où l'option -O qui la redirige vers un fichier de même nom que la cible. Pour poursuivre un téléchargement interrompu, le manuel sur le site de curl nous apprend heureusement qu'il faut user de cette syntaxe :

$ curl -C - -O http://cdimage.debian.org/cdimage/weekly-builds/i386/iso-dvd/debian-testing-i386-binary-1.iso

En cherchant bien dans la doc, on doit même pouvoir télécharger les 3 DVD en une seule commande sans se fatiguer. Bien sûr on n'oubliera pas de vérifier quand même l'intégrité des images ISO avant de les graver sur CD ou DVD.

Bien choisir son serveur

Outre le problème lié à d'éventuelles restrictions de débit par client, il arrive plus souvent qu'on ne le voudrait que ce soit le serveur et non plus wget ou curl qui n'accepte plus de redémarrer un fichier à moitié téléchargé. On s'en rend compte en activant le mode débogage de wget par exemple :

$ wget -dc http://debian.mirror.inra.fr/debian-cd/4.0_r0/i386/iso-dvd/debian-40r0-i386-DVD-1.iso
[...]
---request begin---
GET /debian-cd/4.0_r0/i386/iso-dvd/debian-40r0-i386-DVD-1.iso HTTP/1.0
Range: bytes=1650409159-
User-Agent: Wget/1.10.2
Accept: */*
Host: debian.mirror.inra.fr
Connection: Keep-Alive
[...]
---response end---
416 Requested Range Not Satisfiable
Registered socket 3 for persistent reuse.

   Le fichier a déjà été complètement récupéré; rien à faire.

Disabling further reuse of socket 3.
Closed fd 3

Dans ce cas c'est le serveur qui nous répond qu'on lui a demandé des octets en dehors de la plage possible. Il suffit alors d'essayer un autre serveur jusqu'à ce que le téléchargement reprenne.

Avec tout ça, plus d'excuse pour ne pas télécharger les 3 DVD de Debian pour vos copains !

NB: nous ne parlerons pas de l'alternative BitTorrent pour télécharger les CD et DVD car le débit de téléchargement plafonne en général autour des 100 ko/s au lieu des 300 à 600 ko/s généralement constatés sur les bons serveurs HTTP en période creuse. Cette technique n'est donc intéressante que lorsque les CD sont prisés : sortie d'une version majeure d'une distribution Linux majeure.

Notes

[1] notamment celle de la Debian Sarge