Linux

CentOS 4.8

wget(1)


WGET

NOM

wget − Manuel de GNU Wget

SYNOPSIS

wget [option]... [ URL ]...

DESCRIPTION

GNU Wget est un programme non-interactif de téléchargement de fichiers depuis le Web. C’est un logiciel libre. Il supporte les protocoles HTTP , HTTPS et FTP ainsi que le téléchargement au travers des proxies HTTP .

Wget est non interactif c’est-à -dire qu’il peut travailler en arrière-plan, sans intervention de l’utilisateur. Ceci vous permet de lancer un téléchargement et de vous déconnecter du système, laissant Wget finir le travail. En revanche, la plupart des navigateurs Web requièrent la présence constante de l’utilisateur, ce qui est particulièrement pénible lorsqu’on transfère beaucoup de données. Wget peut suivre les liens des pages HTML et créer une copie locale de sites web distants, en récréant complètement la structure du site original. Ceci est parfois désigné sous le nom de « téléchargement récursif ». En faisant cela, Wget respecte le standard d’exclusion de robots (/robots.txt). Wget peut aussi convertir les liens dans les fichiers HTML téléchargés pour la consultation locale.

Wget a été conçu pour être robuste en dépit des connexions réseaux lentes ou instables : si un téléchargement échoue suite à un problème réseau, il réessayera jusqu’à ce que l’intégralité du fichier soit téléchargée. Si le serveur supporte la reprise, il lui demandera de reprendre là où le téléchargement s’est interrompu.

OPTIONS

Options de base pour le démarrage

−V

--version

Affiche la version de Wget.

−h

--help

Affiche un message d’aide décrivant toutes les options de ligne de commande de Wget.

−b

--background

Passe à l’arrière-plan immédiatement après le démarrage. Si aucun fichier de sortie n’est spécifié via −o, la sortie est redirigée vers wget-log.

−e commande

−-execute commande

Exécute commande comme si elle faisait partie de .wgetrc. La commande sera exécutée après celles de .wgetrc, et donc prendra le pas sur celles-ci.

Options de suivi et de fichiers d’entrées

−o logfile

--output-file=logfile

Enregistre tous les messages dans logfile. Normalement les messages sont affichés sur la sortie d’erreur standard.

−a logfile

--append-output=logfile

Ajouter à logfile. C’est la même chose que l’option −o, sauf que les messages sont ajoutés à la fin du fichier logfile au lieu d’écraser l’ancien fichier. Si logfile n’existe pas, il sera créé.

−d

--debug

Active la sortie de debug, c’est-à -dire des informations importantes pour les développeurs de Wget si quelque chose ne fonctionne pas correctement. Votre administrateur système peut avoir choisi de compiler Wget sans l’option de debug, dans ce cas −d ne fonctionnera pas. Remarquez que la compilation avec l’option de debug est toujours sûre : Wget compilé avec l’option debug n’affichera aucune information de debug à moins qu’on ne le lui demande avec −d.

−q

--quiet

Désactive la sortie de Wget.

−v

--verbose

Active la sortie bavarde, avec toutes les données disponibles. La sortie par défaut est bavarde.

−nv

--non-verbose

Sortie non bavarde : désactive le mode bavard, sans toutefois être complètement muet (utilisez −q pour ça), et donc seuls les messages d’erreurs et les informations de bases seront imprimées.

−i fichier

--input-file=fichier

Lit les URL depuis fichier, dans ce cas aucune URL n’est requise sur la ligne de commande. S’il y a des URL sur la ligne de commande et dans un fichier d’entrée, celles de la ligne de commande sont téléchargées en premier. fichier n’est pas nécessairement un document HTML , une simple liste d’URL convient également.

Cependant, si vous spécifiez --force-html, le document sera considéré comme étant du html. Dans ce cas vous pouvez avoir des problèmes avec les liens relatifs, problème qui se résout en ajoutant <base href="url"> aux documents ou en spécifiant --base=url sur la ligne de commande.

−F

--force-html

Lorsque l’entrée est lue depuis un fichier, force Wget à le considérer comme un fichier HTML . Cela vous permet de rapatrier les liens relatifs depuis un fichier HTML de votre disque local, en ajoutant <base href="url"> au HTML , ou en utilisant l’option de ligne de commande --base.

−B URL

--base= URL

Utilisé en conjonction avec −F, préfixe les liens relatifs avec URL dans le fichier spécifié par −i.

Options de téléchargement

--bind-address= ADDRESS

Lors de la création de la connexion TCP/IP cliente, utilise ADRESSE sur la machine locale. ADRESSE peut être un nom d’hôte ou une adresse IP . Cette option peut être utile si votre machine possède plusieurs adresses IP.

−t n

--tries=n

Définit le nombre de tentatives à n. Spécifiez 0 ou inf pour un nombre illimité de tentatives.

−O fichier

--output-document=fichier

Les documents ne seront pas écrits dans les fichiers appropriés, mais tous concaténés les uns aux autres et écrits dans fichier. Si fichier existe déjà , il sera remplacé. Si fichier vaut -, les documents seront affichés sur la sortie standard. Cette option positionne automatiquement le nombre de tentatives à 1.

−nc

--no-clobber

Si un fichier est téléchargé plus d’une fois dans un même répertoire, le comportement de Wget dépend de plusieurs options parmi lesquelles −nc. Dans certains cas, le fichier local sera remplacé au fur et à mesure des téléchargements. Dans les autres cas, il sera préservé.

Quand Wget est lancé sans −N, −nc, ni −r, le téléchargement d’un même fichier dans un même répertoire préservera le fichier original file, les copies suivantes seront renommées file.1, file.2 et ainsi de suite. Si l’option −nc est spécifiée, ce comportement est supprimé, Wget ne téléchargera pas les nouvelles copies de file. C’est pourquoi no−clobber n’est pas un nom totalement adapté pour ce mode : ce n’est pas contre l’expulsion du fichier qu’elle protège (les suffixes numériques empêchent déjà le clobbering), mais elle empêche la sauvegarde des version multiples.

Quand Wget est lancé avec −r, mais sans −N ni −nc, le retéléchargement d’un fichier écrasera l’ancienne version de celui-ci. L’option −nc empêche ce comportement : la version originale est préservée et les nouvelles copies du serveur sont ignorées.

Quand Wget est lancé avec −N, indépendamment de −r, la décision de télécharger la nouvelle version du fichier dépend des dates du fichier local et distant et de la taille du fichier. −nc ne devrait pas être spécifié en même temps que −N.

Remarquer que si l’option −nc est spécifiée, les fichiers avec l’extension .html ou (beurk) .htm seront chargés depuis le disque local et analysés comme s’ils avaient été rapatriés depuis le Web.

−c

--continue

Reprend le téléchargement d’un fichier incomplet. C’est utile pour achever le téléchargement commencé par une instance précédente de Wget, ou par un autre programme. Par exemple :

        wget -c ftp://sunsite.doc.ic.ac.uk/ls-lR.Z

S’il y a un fichier nommé ls-lR.Z dans le répertoire courant, Wget supposera que c’est la première partie du fichier distant, et demandera au serveur de continuer le téléchargement à l’offset égal à la longueur du fichier local.

Remarquez que vous n’avez pas besoin de spécifier cette option si vous voulez que l’invocation courante de Wget réessaye de retélécharger un fichier parce que la connexion a été perdue. C’est le comportement par défaut. −c n’affecte que la reprise des téléchargements démarrés antérieurement à cette invocation de Wget, et dont les fichiers locaux sont encore présents.

Sans l’option −c, l’exemple précédent aurait juste téléchargé le fichier distant dans ls-lR.Z.1, laissant intact le fichier tronqué ls-lR.Z.

Depuis Wget 1.7, si vous utilisez −c sur un fichier non vide, et que le serveur ne supporte pas la reprise du téléchargement, Wget refusera de télécharger le fichier depuis 0, ce qui détruirait le contenu existant. Si vous voulez vraiment recommencer le téléchargement depuis 0, effacez le fichier.

Depuis Wget 1.7, si vous utilisez −c sur un fichier de taille supérieure ou égale à celle du serveur, Wget refusera de télécharger le fichier est affichera un message d’explication car dans ce cas la reprise du téléchargement n’a aucun sens.

En revanche, l’utilisation de −c, sur tout fichier qui est plus grand sur le serveur que localement sera considéré comme un téléchargement incomplet ; Les octets manquants seront téléchargés et ajouté la fin du fichier C’est vraiment pratique dans certains cas : par exemple vous pouvez utiliser, wget −c pour ne télécharger que la nouvelle portion de données qui ont été ajoutés à un fichier de log.

Toutefois, si le fichier est plus grand du côté du serveur parce qu’il a été modifié, par opposition à un simple ajout, vous vous retrouvez avec un fichier corrompu. Wget n’a aucun moyen de vérifier que le fichier local est réellement un préfixe valide du fichier distant. Vous devez faire attention quand vous utilisez simultanément −c et −r, puisque chaque fichier sera considéré comme un candidat à la reprise d’un téléchargement interrompu.

Autre exemple vous récupérez un fichier corrompu si vous utilisez −c avec un proxy HTTP boiteux qui insère une chaîne « transfer interrupted » dans le fichier local. Dans le futur une option retour en arrière pourrait être ajoutée pour s’occuper de ce cas.

Remarquez que −c ne fonctionne qu’avec les serveurs FTP et HTTP qui supportent l’en-tête Range.

--progress=type=type

Positionne le type d’indicateur de progression. Les indicateurs valides sont dot (le point) et bar (une barre)

Par défaut des points sont imprimés à l’écran pour matérialiser le téléchargement réussi d’une quantité déterminée de données.

Quand vous utilisez les points, vous pouvez aussi positionner le style en spécifiant dot:style. Les différents styles permettent de choisir la signification du point.

Dans le style par défaut (default) chaque point représente 1K, il y a 10 points par blocs et 50 points par lignes. Le style binary est orienté ordinateur : 8 K par point, 16 points par blocs et 48 points par lignes (ce qui fait 384 K par ligne). Le style mega est plus adapté pour le téléchargement de très gros fichiers : chaque point représente 64 K il y a 8 points par blocs et 48 points sur chaque ligne (ce qui fait 3 M par ligne).

Spécifiez --progress=bar pour afficher une belle barre de progression ASCII pour matérialiser le téléchargement. Si la sortie n’est pas un terminal, cette option sera ignorée, et Wget retournera à l’indicateur avec les points. Si vous voulez forcer l’indicateur barre, utilisez --progress=bar:force.

−N

--timestamping

Active l’estampille temporelle.

−S

--server-response

Affiche les en-têtes envoyés par les serveurs HTTP et les réponses envoyées par les serveurs FTP .

--spider

Lorsqu’il est invoqué avec cette option, Wget se comportera comme une araignée, sur la toile, il ne téléchargera pas les pages, il vérifiera simplement leur présence. Vous pouvez l’utiliser pour vérifier vos signets par exemple

        wget --spider --force-html -i bookmarks.html

Cette caractéristique nécessite encore quelques efforts pour se rapprocher des fonctionnalités de véritable araignées WWW .

−T seconds

--timeout=seconds

Positionne le décompte de lecture à seconds secondes. En cas d’émission d’une lecture réseau, le descripteur de fichier est vérifié pour un décompte, sinon une connexion pendante (lecture non interrompue) pourrait subsister. Le décompte par défaut est 900 secondes (quinze minutes). Positionnez le décompte à 0 pour désactiver la vérification des décomptes.

Veuillez ne pas diminuer la valeur par défaut du décompte sans savoir exactement ce que vous êtes en train de faire.

−w seconds

--wait=seconds

Attendre la durée spécifiée en secondes entre les téléchargements. L’utilisation de cette option, est recommandée, puisqu’elle allège la charge du serveur en réduisant la fréquence des requêtes. à la place des secondes, la durée peut être spécifiée en minutes en utilisant le suffixe m, en heures avec le suffixe h, ou en jours avec le suffixe d.

La spécification d’une durée importante est utile si le réseau ou l’hôte cible est tombé, aussi Wget peut attendre suffisamment longtemps que le réseau soit réparé avant de réessayer.

--waitretry=seconds

Si vous ne voulez pas que Wget attende entre chaque téléchargement, mais uniquement entre les essais ou téléchargement infructueux, vous pouvez utiliser cette option. Wget attend n secondes au n-ième échec sur un fichier, jusqu’au maximum spécifié. C’est pourquoi une valeur de 10 fera patienter jusqu’à (1 + 2 + 3 +... + 10) = 55 secondes par fichier.

Remarquez que cette option est activée par défaut dans le fichier global wgetrc.

--random-wait

Certains sites web peuvent analyser les logs pour identifier les programmes de téléchargement comme Wget en recherchant les similarités statistiques temporelles entre les requêtes. Cette option fait varier la durée inter-requêtes entre 0 et 2 * wait secondes, où wait a été spécifié par l’option −w (ou −-wait), dans le but de dissimuler la présence de Wget dans de telles analyses.

Un article récent dans une publication consacrée au développement sur une plate-forme cliente populaire fournissait le code pour réaliser cette analyse au vol. Son auteur suggérait de bloquer les adresses de classe C pour s’assurer que les programmes de téléchargement seront bloqués en dépit des changements d’adresses dues au DHCP.

L’option --random-wait a été inspirée par ce conseil mal avisé de bloquer l’accès à un site web à de nombreux utilisateurs innocents en raison des actions d’un seul.

−Y on/off

--proxy=on/off

Active/Désactive le support proxy. Le proxy est activé par défaut si la variable d’environnement appropriée est définie.

−Q quota

--quota=quota

Spécifie le quota de données pour les téléchargements automatiques La valeur peut être spécifiée en octets (défaut), kilo-octets (suffixe k), ou méga-octets (avec le suffixe m).

Remarquez que le quota n’affectera jamais le téléchargement d’un unique fichier. Aussi, si vous spécifiez wget −Q10k ftp://wuarchive.wustl.edu/ls-lR.gz, l’intégralité du fichier ls-lR.gz sera téléchargée. La même chose se produira si vous spécifiez plusieurs URL sur la ligne de commande. Wget ne tient compte du quota que pour les téléchargements récursifs ou depuis un fichier d’entrée. Aussi vous pouvez tapez sans crainte wget −Q2m −i sites : le téléchargement s’arrêtera lorsque le quota sera atteint.

Positionner le quota à 0 ou inf signifie aucun quota.

Options de répertoires

−nd

--no-directories

Ne pas créer la hiérarchie de répertoires lors du téléchargement récursif. Si cette option est activée, tous les fichiers seront sauvegardés dans le répertoire courant, sans écrasement (si un nom apparaît plus d’une fois, les noms de fichiers auront un suffixe numéroté .n).

−x

--force-directories

C’est l’opposé de −nd : créer une hiérarchie de répertoire, même si aucune n’aurait été créée autrement. Par exemple, wget −x http://fly.srk.fer.hr/robots.txt sauvegardera le fichier téléchargé dans le fly.srk.fer.hr/robots.txt.

−nH

--no-host-directories

Désactive la génération de la racine des répertoires avec le nom de l’hôte. Par défaut, l’invocation de Wget avec −r http://fly.srk.fer.hr/ créera une hiérarchie de répertoires avec fly.srk.fer.hr/ comme racine. Cette option désactive ce comportement.

--cut-dirs=n

Ignore les n composantes du répertoire. C’est utile pour contrôler finement le répertoire lors du téléchargement récursif.

Par exemple, avec le répertoire ftp://ftp.xemacs.org/pub/xemacs/. Si vous le téléchargez avec l’option −r, il sera sauvegardé localement sous ftp.xemacs.org/pub/xemacs/. Alors que l’option −nH peut supprimer la partie ftp.xemacs.org/, vous êtes encore ennuyé avec pub/xemacs. C’est là que l’option --cut-dirs est intéressante ; elle permet de cacher à Wget n composantes du répertoire distant. Voici plusieurs exemples pour illustrer la fonctionnement de l’option --cut-dirs option.

        pas d’option      -> ftp.xemacs.org/pub/xemacs/
        -nH               -> pub/xemacs/
        -nH --cut-dirs=1  -> xemacs/
        -nH --cut-dirs=2  -> .

        --cut-dirs=1      -> ftp.xemacs.org/xemacs/
        ...

Si vous voulez juste vous débarrasser de la structure des répertoires, cette option est similaire à la combinaison −nd et −P. Cependant, contrairement à −nd, --cut-dirs ne se perd pas dans les sous-répertoires. Par exemple, avec −nH −−cut-dirs=1, le sous-répertoire beta/ se retrouvera placé dans xemacs/beta, comme on s’y attend.

−P prefixe

--directory-prefix=prefixe

Positionne le préfixe pour les répertoires à prefixe. Le répertoire prefix est le répertoire où tous les autres fichiers seront sauvegardés, i.e. le sommet de l’arbre de téléchargement. Par défaut c’est . (le répertoire courant).

Options HTTP

−E

--html-extension

Si un fichier de type texte/html est téléchargé et que l’ URL ne se termine par l’expression régulière \.[Hh][Tt][Mm][Ll]?, cette option provoque l’ajout du suffixe .html au nom de fichier local. C’est pratique, si vous êtes en train de répliquer un site distant qui utilise des pages .asp, mais vous voulez que les pages répliques soient visibles sur votre serveur Apache. Cette option est aussi très utile lorsque vous téléchargez la sortie de CGI. Une URL comme http://site.com/article.cgi?25 sera sauvegardé sous article.cgi?25.html.

Remarquez que les noms de fichiers ainsi modifiés seront retéléchargés chaque fois que vous ferez une réplique du site, car Wget ne pas savoir que le fichier local X.html correspond à l’ URL X distante (puisqu’il ne sait pas encore que l’ URL produira une sortie de type texte/html. Pour prévenir ce retéléchargement, vous devez utiliser −k et −K aussi la version originale de fichier sera sauvegardée sous le nom X.orig.

--http-user=user

--http-passwd=password

Spécifie le nom d’utilisateur user et le mot de passe password pour un serveur HTTP . En fonction du type de défi, Wget le cryptera en utilisant le mécanisme d’authentification basic (non-sécurisé) ou digest.

Une autre manière de spécifier le nom d’utilisateur et le password c’est d’utiliser l’ URL elle-même.

−C on/off

--cache=on/off

Lorsque positionné à off, désactive le cache coté serveur. Dans ce cas, Wget enverra au serveur distant la directive appropriée (Pragma:no-cache) pour récupérer le fichier depuis le service distant, plutôt que la version cachée. C’est particulièrement utile pour télécharger et purger des documents obsolètes sur des serveurs proxies.

Le cache est autorisé par défaut.

--cookies=on/off

Lorsque positionné à off, désactive l’utilisation des cookies. Le cookie est un mécanisme pour préserver l’état du serveur. Le serveur envoie au client un cookie en envoyant l’en-tête Set−Cookie, et le client répondra avec le même cookie au requêtes ultérieures. Comme les cookies permettent aux propriétaires du serveur de suivre à la trace les visiteurs et pour les sites d’échanger cette information, on peut les considérer comme une brèche dans la sphère privée. Par défaut, les cookies sont utilisés ; cependant le stockage des cookies n’est pas activé par défaut.

--load-cookies fichier

Charge les cookies depuis fichier avant le premier téléchargement HTTP . fichier est un fichier texte dans le format originellement utilisé par Netscape pour le fichier cookies.txt

Vous utiliserez cette option lorsque vous répliquerez des sites qui requièrent d’être authentifié pour accéder à leur contenu. Le processus d’authentification repose typiquement sur l’envoie d’un cookie HTTP pour recevoir et vérifier votre accréditation. Le cookie est alors renvoyé par le navigateur lorsque vous accédez à certaines parties du site pour prouver votre identité.

Faire une copie d’un tel site requiert que Wget envoie les mêmes cookies que votre navigateur lorsqu’il communique avec le site. Ceci est fait en indiquant l’emplacement du fichier cookies.txt avec --load-cookies. Wget enverra les même cookies que votre navigateur dans la même situation. Les navigateurs stockent leurs cookies dans des endroits différents :

Netscape 4.x.

Les cookies sont dans ~/.netscape/cookies.txt.

Mozilla and Netscape 6.x.

Les cookies de Mozilla s’appellent aussi cookies.txt, et sont situés quelque part dans le répertoire ~/.mozilla. Le chemin complet ressemble souvent à ~/.mozilla/default/une-chaine-bizarre/cookies.txt.

Internet Explorer.

Vous pouvez fabriquer un fichier de cookies pour Wget en utilisant dans le menu Fichier, Importer et Exporter, Exporter les cookies. Ceci a été testé avec Internet Explorer 5 ; ce n’est pas garanti que ça marche avec les versions antérieures.

Autres navigateurs.

Si vous utilisez un autre navigateur pour créer vos cookies --load-cookies ne fonctionnera que si vous pouvez indiquer l’emplacement ou produire un fichier cookie dans le format Netscape comme s’y attend Wget.

Si vous ne pouvez pas utiliser --load-cookies, il reste encore une alternative. Si votre navigateur supporte le gestionnaire de cookies, vous pouvez l’utiliser pour voir les cookies utilisés pour l’accès au site que vous copiez. Recopier le nom et la valeur du cookie et dites manuellement à Wget d’envoyer ces cookies, en court-circuitant le support officiel des cookies :

        wget --cookies=off --header "Cookie: I<name>=I<value>"

--save-cookies fichier

Sauvegarde les cookies dans fichier à la fin de la session. Les cookies sans date d’expiration, ou qui sont déjà périmés, ne sont pas sauvegardés.

--ignore-length

Malheureusement, certains serveurs HTTP (des programmes CGI , pour être plus précis) envoient des en-têtes avec un bogue dans « Content−Length », ce qui fait que Wget se comporte bizarrement et ne pense pas que tout le document a été téléchargé. Vous pouvez détecter ce syndrome si Wget essaye de récupérer plusieurs fois le même document encore et encore, disant à chaque fois que la connexion a été fermée au même endroit dans le document.

Avec cette option, Wget ignorera l’en-tête « Content−Length », s’il est présent.

--header=additional-header

Définit un en-tête additionnel à passer aux serveurs HTTP . L’en-tête doit contenir un « : » précédé par un ou plusieurs caractères non blancs, et ne doit pas contenir de retour à la ligne.

Vous pouvez définir plus d’un en-tête additionnel en utilisant plusieurs fois l’option --header.

        wget --header=’Accept-Charset: iso-8859-2’ \
             --header=’Accept-Language: hr’        \
               http://fly.srk.fer.hr/

La spécification d’une chaîne de caractères vide comme valeur d’en-tête effacera tous les en-têtes prédéfinis par l’utilisateur.

--proxy-user=user

--proxy-passwd=password

Spécifie le nom d’utilisateur user et le mot de passe password pour l’authentification sur un serveur proxy. Wget les encodera en utilisant le mécanisme d’authentification de base.

--referer=url

Inclut « Referer: url » dans la requête HTTP . C’est utile pour récuperer des documents quand le traitement du coté serveur suppose qu’ils sont toujours récupérés par des navigateurs web interactifs et s’ils ne sont envoyés correctement que lorsque Referer est positionné à l’une des pages qui pointent vers eux.

−s

--save-headers

Enregistre les en-têtes envoyés par le serveur HTTP vers le fichier, avant le contenu réel, avec une ligne vide comme séparateur.

−U agent-string

--user-agent=agent-string

S’identifier sous le nom agent-string pour le serveur HTTP .

Le protocole HTTP autorise les clients à s’identifier eux-même en utilisant le champ « User−Agent » dans l’en-tête Ceci permet de distinguer les logiciels WWW , le plus souvent pour des buts statistiques ou pour tracer des violations de protocole. Wget s’identifie normalement sous le nom Wget/version, version étant la numéro de la version courante de Wget.

Cependant, certains sites sont connus pour imposer une politique de filtrage sur des clients en fonction de « User−Agent ». Si conceptuellement ce n’est pas une trop mauvaise idée, ça se traduit souvent par le refus de servir les clients autres que Mozilla ou Microsoft Internet Explorer. Cette option vous permet de falsifier la valeur de « User−Agent » envoyée par Wget. L’utilisation de cette option n’est pas recommandée, à moins que vous ne sachiez vraiment ce que vous êtes en train de faire.

Options FTP

−nr

--dont-remove-listing

Ne pas supprimer les fichiers temporaires .listing générés par les requêtes FTP . Normalement, ces fichiers contiennent la liste brute des répertoires reçus depuis les serveurs FTP . Ne pas les supprimer peut être utile pour le déverminage ou pour vérifier facilement le contenu des répertoires distants (par exemple pour vérifier que le miroir que vous êtes en train de consulter est complet).

Remarquez que même si Wget écrit dans un nom de fichier connu, ce n’est pas un trou de sécurité dans le scénario où un utilisateur crée un lien symbolique .listing vers /etc/passwd ou quelque chose d’autre et demande à root de lancer Wget dans son répertoire. En fonction de l’option utilisée, Wget refusera d’écrire dans .listing, faisant échouer l’opération d’écrasement, ou il supprimera le lien symbolique et le remplacera par le fichier .listing, ou le listing sera écrit dans un fichier .listing.number.

Même si cette situation n’est pas un problème, root ne devrait jamais lancer Wget dans le répertoire d’un utilisateur en qui il n’a pas confiance. Un utilisateur peut faire quelque chose d’aussi simple qu’un lien index.html vers /etc/passwd et demander à root de lancer Wget avec −N ou −r aussi le fichier sera remplacé.

−g on/off

--glob=on/off

Active/désactive l’englobement FTP . L’englobement signifie que vous pouvez utiliser les caractères génériques comme *, ?, [ et ] pour récupérer plusieurs fichiers d’un même répertoire en une fois. Par exemple :

        wget ftp://gnjilux.srk.fer.hr/*.msg

Par défaut, l’englobement est activé si l’ URL contient un caractère générique. Cette option permet d’activer ou de désactiver l’englobement de manière permanente.

Vous pouvez avoir à protéger l’ URL avec des guillemets pour empêcher le shell d’interpréter les caractères génériques. L’englobement oblige Wget à regarder un listing de répertoires, qui est dépendant du système. C’est pourquoi, pour le moment ça ne marche qu’avec les serveurs FTP Unix (et ceux qui émulent la sortie du « ls » Unix).

--passive-ftp

Utilise le mécanisme de téléchargement FTP passif, dans lequel le client initialise la connexion de données. C’est parfois requis pour accéder à des FTP qui sont derrière des pare-feux.

--retr-symlinks

Habituellement, lors du téléchargement récursif de répertoire FTP, si on rencontre un lien symbolique, le fichier lié n’est pas téléchargé. à la place on crée un lien symbolique identique sur le système de fichiers local. Le fichier pointé ne sera pas téléchargé, à moins bien sûr que le téléchargement récursif ne le rencontre plus tard.

Cependant, quand --retr-symlinks est spécifié, les liens symboliques sont suivis et les fichiers désignés sont récupérés. Pour le moment, cette option ne permet pas à Wget de suivre les liens symboliques sur les répertoire pour y poursuivre sa récursion, mais ceci devrait être amélioré dans le futur.

Remarquez que cette option n’a aucun effet pour le téléchargement d’un fichier (et non un répertoire) si celui-ci a été spécifié sur la ligne de commande plutôt que rencontré lors de la récursion. Dans ce cas les liens symboliques sont toujours suivis.

Options de téléchargement récursif

−r

--recursive

Active le téléchargement récursif.

−l depth

--level=depth

Spécifie la profondeur maximale depth pour la récursion. Par défaut la profondeur maximale est 5.

--delete-after

Cette option indique à Wget de détruire tous les fichiers qu’il télécharge, après l’avoir fait. C’est utile pour précharger les pages les plus populaires dans un proxy, par exemple :

        wget -r -nd --delete-after http://whatever.com/~popular/page/

L’option −r télécharge récursivement et −nd ne crée pas les répertoires.

Remarquez que --delete-after efface les fichiers sur la machine locale. Ãa n’a rien à voir avec la commande DELE des serveurs FTP . Remarquez aussi que si --delete-after est spécifié, --convert-links est ignoré, et donc les fichiers .orig ne sont pas crées.

−k

--convert-links

Une fois que le téléchargement est terminé, convertit les liens du document pour qu’il soit consultable en local. Ceci affecte non seulement les liens hypertextes, mais aussi toute partie du document qui lie un contenu extérieur, comme les images, les liens vers les feuilles de style, les hyperliens vers du contenu non-HTML, etc.

Chaque lien sera modifié de l’une des deux façons suivantes :

.

Les liens vers les fichiers qui ont été téléchargés par wget seront transformés en liens relatifs.

Exemple : si le fichier téléchargé /toto/doc.html a un lien vers /titi/image.gif, aussi téléchargé, alors le lien dans doc.html sera modifié pour pointer vers ../titi/image.gif. Ce type de transformation fonctionne très bien quelle que soit la combinaison de répertoires.

.

Les liens vers les fichiers qui n’ont pas été téléchargés par Wget seront modifiés pour inclure le nom d’hôte et le chemin absolu vers la destination.

Exemple : si le fichier téléchargé /toto/doc.html a un lien vers /titi/image.gif (ou vers ../titi/image.gif), alors le lien dans doc.html sera modifié pour pointé vers http://hostname/titi/image.gif.

à cause de ceci, la navigation locale fonctionne bien : si un fichier lié a été téléchargé, le lien désigne son nom local ; sinon, le lien désigne son nom Internet complet plutôt qu’un lien brisé. Le fait que les anciens liens soient convertis en liens relatifs vous permet de déplacer ailleurs les hiérarchies téléchargées.

Remarquez que Wget ne peut pas savoir avant la fin du téléchargement quels seront les liens téléchargés. C’est pourquoi le travail accompli par −k n’a lieu qu’après la fin de tous les téléchargements.

−K

--backup-converted

Lors de la conversion d’un fichier, sauvegarde le fichier original avec le suffixe .orig. Ceci affecte le comportement de −N.

−m

--mirror

Active toutes les options convenables pour faire un miroir. Cette option active la récursion, l’estampille temporelle, positionne la profondeur de récursion maximale à +infini et conserve le listing des répertoires FTP . Actuellement c’est équivalent à −r −N −l inf −nr.

−p

--page-requisites

Cette option oblige Wget à télécharger tous les fichiers nécessaires à l’affichage convenable d’une page HTML donnée. Notamment les images, sons et feuilles de styles référencées.

Ordinairement, lors du téléchargement d’une unique page HTML , les documents requis pour l’afficher proprement ne sont pas téléchargés. L’utilisation de −r et −l peut aider, mais puisque Wget ne fait pas d’ordinaire la distinction entre les documents externes et internes, on se retrouve parfois avec des « documents feuilles » qui n’ont pas leurs prérequis.

Par exemple, si le document 1.html contient une balise <IMG> référençant 1.gif et une balise <A> pointant vers un document externe 2.html. Et si 2.html est similaire mais que son image est 2.gif et qu’il a un lien vers 3.html. On peut aller loin comme ça.

Si on exécute la commande

        wget -r -l 2 http://<site>/1.html

alors 1.html, 1.gif, 2.html, 2.gif et 3.html seront téléchargés. Comme vous pouvez le constater, 3.html n’aura pas sa dépendance 3.gif parce Wget compte simplement le nombre de sauts (ici jusqu’à 2) depuis 1.html dans le but de déterminer où il doit arrêter la récursion. Cependant, avec cette commande :

        wget -r -l 2 -p http://<site>/1.html

tous les fichiers ci-dessus et la dépendance 3.gif de 3.htmlseront télécharchés. Similairement,

        wget -r -l 1 -p http://<site>/1.html

provoquera le téléchargement de 1.html, 1.gif, 2.html, et de 2.gif. On pourrait croire que :

        wget -r -l 0 -p http://<site>/1.html

ne téléchargera que 1.html et 1.gif, mais malheureusement ce n’est pas le cas car −l 0 est équivalent à −l inf, la récursion infinie. Pour télécharger une unique page HTML (ou une poignée d’entre elles, toutes spécifiées sur la ligne de commande, ou dans un fichier d’entrée −i URL ) et leurs dépendances, laissez simplement de coté −r et −l :

        wget -p http://<site>/1.html

Remarquez que Wget se comportera comme si −r avait été spécifié, mais une seule page sera téléchargée, avec ses dépendances. Les liens de cette page vers des documents externes ne seront pas suivis. En réalité, pour télécharger une page unique avec ses dépendances, (même si celles-ci sont sur d’autres sites) et être sûr que tout s’affichera correctement en local, l’auteur utilise conjointement d’autres options :

        wget -E -H -k -K -nh -p http://<site>/<document>

Il existe un cas où vous pouvez avoir besoin de rajouter des options. C’est si document contient un ensemble de cadres <FRAMESET>, « le saut de plus » offert par −p ne sera pas suffisant : vous récupérez les pages cadres <FRAME> référencées mais pas leurs dépendances. C’est pourquoi, dans ce cas vous aurez besoin d’ajouter −r −l1 à la ligne de commande. −r −l1 lancera une récursion depuis la page <FRAMESET> vers les pages <FRAME>, et −p récupérera leurs dépendances. Si vous utilisez déjà un niveau de récursion de 1 ou supérieur, vous aurez besoin de l’augmenter de 1. Dans le futur, −p pourrait être assez malin pour faire « deux sauts de plus » dans le cas d’une page <FRAMESET>.

Pour clore ce sujet, ça vaut la peine de connaître l’idée que se fait Wget d’un lien vers un document externe. C’est toute URL spécifiée dans une balise <A>, <AREA> , ou <LINK> autre que <LINK REL="stylesheet">.

Options récursives d’acceptation et de rejet

−A acclist --accept acclist

−R rejlist --reject rejlist

spécifie la liste (avec la virgule comme séparateur) des suffixes ou modèles de noms de fichiers qui doivent être acceptés ou rejetés.

−D domain-list

--domains=domain-list

Positionne les domaines acceptés et recherchés par DNS , où domain-list est une liste avec la virgule comme séparateur. Remarquer que ça n’active pas −H. Cette option accélère les choses, même si un seul hôte est concerné.

--exclude-domains domain-list

Exclut les domaines contenus dans la liste domain-list de la recherche DNS.

--follow-ftp

Suit les liens FTP depuis les documents HTML . Sans cette option, Wget ignorera tous les liens FTP .

--follow-tags=list

Wget a une table interne de balises HTML qu’il considère lorsqu’il examine les documents liés durant un téléchargement récursif. Si un utilisateur veut se limiter à un sous-ensemble de ces balises, celui-ci devra les spécifier dans une liste avec la virgule comme séparateur, avec cette option.

−G list

--ignore-tags=list

C’est l’opposé de l’option --follow-tags option. Pour laisser de côté certaines balises HTML lors du téléchargement récursif, spécifier les dans une liste avec la virgule comme séparateur.

Dans le passé, l’option −G était la meilleure pour télécharger une page avec ses dépendances, en utilisant une ligne de commande comme :

        wget -Ga,area -H -k -K -nh -r http://<site>/<document>

Cependant, l’auteur de cette option allait au travers de pages avec des balises comme <LINK REL="home" HREF="/"> et il réalisa que l’option −G n’était pas suffisante. On ne peut pas non plus dire à Wget d’ignorer <LINK>, sinon les feuilles de style ne seront pas téléchargées. Maintenant pour télécharger une page unique avec ses dépendances, il y a l’option dédiée --page-requisites.

−H

--span-hosts

Autorise le changement d’hôtes lors d’un téléchargement récursif.

−L

--relative

Ne suivre que les liens relatifs. C’est utile pour récupérer une page web sans être distrait, même par celles qui sont sur le même hôte.

−I list

--include-directories=list

Spécifie une liste de répertoires séparés par des virgules que vous voulez suivre lors du téléchargement. Les éléments de list peuvent contenir des caractères génériques.

−X list

--exclude-directories=list

Spécifie une liste de répertoires séparés par des virgules que vous voulez exclure du téléchargement. Les éléments de list peuvent contenir des caractères génériques.

−nh

--no-host-lookup

Désactive la recherche DNS , coûteuse en temps sur la plupart des systèmes.

−np

--no-parent

Ne pas remonter dans les répertoires parents. C’est une option utile, puisqu’elle garantit que seuls les fichiers en dessous d’une certaine hiérarchie seront téléchargés.

EXEMPLES

Les exemples sont regroupés en trois sections en fonction de leur complexité.

Utilisation simple

.

Si vous voulez juste télécharger une URL . Tapez juste :

        wget http://fly.srk.fer.hr/

.

Mais que se passera-t-il si la connexion est lente et le fichier gros ? La connexion sera probablement interrompue avant que l’intégralité du fichier ne soit rapatriée. Dans ce cas, Wget essayera de retélécharger le fichier jusqu’à ce qu’il y arrive ou qu’il dépasse le nombre de tentatives par défaut (c’est-à -dire 20). Il est facile de changer le nombre de tentatives par 45, pour s’assurer que l’intégralité du fichier arrivera :

        wget --tries=45 http://fly.srk.fer.hr/jpg/flyweb.jpg

.

Maintenant laissons Wget travailler en arrière-plan, et écrire sa progression dans le fichier de log. C’est fatigant de taper --tries, aussi nous utiliserons −t.

        wget -t 45 -o log http://fly.srk.fer.hr/jpg/flyweb.jpg &

L’esperluette à la fin de la ligne envoie Wget à l’arrière plan. Pour avoir un nombre infini de tentatives, utilisez −t inf.

.

L’usage du FTP est aussi simple. Wget tiendra compte du login et du mot de passe.

        wget ftp://gnjilux.srk.fer.hr/welcome.msg

.

Si vous spécifiez un répertoire, Wget téléchargera l’inventaire du répertoire et le transformera en document HTML . Essayez :

        wget ftp://prep.ai.mit.edu/pub/gnu/
        links index.html

Utilisation avancée

.

Vous avez un fichier qui contient les URL que vous voulez télécharger, utiliser l’option −i :

        wget -i <file>

Si vous spécifiez « - » comme nom de fichier, les URL seront lues depuis l’entrée standard.

.

Créer une image miroir de profondeur 5 du site web de GNU , avec la même structure de répertoire que l’original, avec un seul essai par document, et en sauvegardant le log des activités dans gnulog :

        wget -r http://www.gnu.org/ -o gnulog

.

Même chose que ci-dessus mais en convertissant les liens dans les fichiers HTML pour pointer vers des fichiers locaux, pour que vous puissiez les consulter hors-ligne :

        wget --convert-links -r http://www.gnu.org/ -o gnulog

.

Télécharger une seule page HTML , mais en étant sûr que tous les éléments nécessaires à son affichage, tels que les images incluses et les feuilles de styles externes seront aussi téléchargées. Et s’assurer aussi que la page téléchargée référence les liens téléchargés.

        wget -p --convert-links http://www.server.com/dir/page.html

La page HTML sera sauvegardé dans www.server.com/dir/page.html, et les images, feuilles de styles, etc, quelque part dans www.server.com/, en fonction de l’endroit où elles étaient sur le serveur distant.

.

Même chose que ci-dessus, mais sans créer le répertoire www.server.com/. En fait, je ne veux pas de tous ces noms de répertoires aléatoires du serveur, je veux juste sauvegarder tous les fichiers dans le sous-répertoire download/ du répertoire courant.

        wget -p --convert-links -nH -nd -Pdownload \
             http://www.server.com/dir/page.html

.

Télécharger le fichier index.html de www.linuxfr.org, en affichant les en-têtes originaux du serveur :

        wget -S http://www.linuxfr.org/

.

Enregistrer les en-têtes du serveur, peut-être pour un traitement ultérieur.

        wget -s http://www.linuxfr.org/
        more index.html

.

Télécharger les deux premiers niveaux de wuarchive.wustl.edu, et les mettre dans /tmp.

        wget -r -l2 -P/tmp ftp://wuarchive.wustl.edu/

.

Vous voulez télécharger tous les images GIF d’un répertoire depuis un serveur HTTP . Vous avez essayé wget http://www.server.com/dir/*.gif, mais ça ne fonctionne pas car le téléchargement HTTP ne gère pas l’expansion de nom. Dans ce cas, utilisez :

        wget -r -l1 --no-parent -A.gif http://www.server.com/dir/

Explication : −r −l1 signifie téléchargement récursif, jusqu’à la profondeur 1. --no-parent signifie que les références au répertoire parent sont ignorées et −A.gif signifie de ne télécharger que les fichiers GIF . −A "*.gif" marche aussi.

.

Supposons que vous étiez au milieu d’un téléchargement, et que Wget a été interrompu. Maintenant vous voulez remplacer les fichiers déjà présents Ce sera :

        wget -nc -r http://www.gnu.org/

.

Si vous voulez encoder votre nom d’utilisateur et votre mot de passe pour HTTP ou FTP , utilisez la syntaxe URL appropriée :

        wget ftp://mon_nom:mot_de_passe@unix.server.com/.emacs

.

Vous voulez rediriger la sortie des documents sur la sortie standard au lieu des fichiers :

        wget -O - http://jagor.srce.hr/ http://www.srce.hr/

Vous pouvez aussi combiner les deux options et fabriquer des pipelines pour télécharger des documents référencé par un autre site.

        wget -O - http://cool.list.com/ │ wget --force-html -i -

Utilisation très avancée

.

Si vous voulez que Wget conserve la réplique d’une page (ou de sous-répertoire FTP ), utilisez --mirror (−m), qui est le raccourci pour −r −l inf −N. Vous pouvez mettre Wget dans le fichier crontab pour lui demander de revérifier le site chaque dimanche :

        crontab
        0 0 * * 0 wget --mirror http://www.gnu.org/ -o /home/me/weeklog

.

En plus de ci-dessus, vous désirez convertir les liens pour la consultation locale. Mais après avoir lu ce manuel, vous savez que la conversion de lien ne gère pas bien l’estampille temporelle, aussi vous désirez que Wget conserve une copie des fichiers HTML avant conversion. L’invocation de Wget ressemblera à :

        wget --mirror --convert-links --backup-converted  \
             http://www.gnu.org/ -o /home/me/weeklog

.

Mais vous avez aussi remarqué que la consultation locale ne marche pas du tout quand les fichiers HTML sont sauvegardés avec d’autres extensions que .html, peut-être parce qu’ils ont été envoyés sous le nom index.cgi. Aussi vous voudriez que Wget renomme les fichiers avec content-type text/html et le nom nom.html.

        wget --mirror --convert-links --backup-converted \
             --html-extension -o /home/me/weeklog        \
             http://www.gnu.org/

Ou, en abrégé :

        wget -m -k -K -E http://www.gnu.org/ -o /home/me/weeklog

FICHIERS

/usr/local/etc/wgetrc

Emplacement par défaut du fichier de démarrage global.

.wgetrc

Fichier de démarrage de l’utilisateur.

BOGUES

Les rapports de bogues sont les bienvenus. Envoyez-les à <bug−wget@gnu.org>.

Avant de soumettre un rapport de bogue, veuillez suivre les conseils simples suivants :

1.

Assurez-vous que le comportement que vous voyez est réellement un bogue. Si Wget crashe, c’est un bogue. Si Wget ne se comporte pas comme la documentation l’indique, c’est un bogue. Si les choses fonctionnent bizarrement, et que vous n’êtes pas sûr de la manière dont elles sont supposées fonctionner, ça peut aussi être un bogue.

2.

Essayer de mettre en évidence les circonstances qui provoquent le bogue. Par exemple si Wget crashe avec wget −rLl0 −t5 −Y0 http://yoyodyne.com −o /tmp/log, vous devriez essayer de voir s’il crashe avec un ensemble plus réduit d’option.

Bien que je sois aussi intéressé par le contenu du fichier .wgetrc, il ne faut pas le recopier directement dans le message de debug. Il vaut mieux essayer de reproduire le bogue avec un .wgetrc le plus simple possible. Seuls les paramètres de .wgetrc qui ont une influence sur le bogue, devrait être envoyés par courrier électronique.

3.

Démarrez s’il vous plaît avec l’option −d et envoyez le log (ou uniquement les parties concernées). Si Wget a été compilé sans le support debug, recompilez-le. C’est vraiment plus facile de traquer les bogues avec le support du debug activé.

4.

Si Wget a crashé, essayez de le lancer dans un débogueur, par exemple gdb ‘which wget‘ core et tapez where pour obtenir la pile des appels.

VOIR AUSSI

L’entrée GNU Info de wget.

AUTEUR

Ãcrit à l’origine par Hrvoje Niksic <hniksic@arsdigita.com>.

COPYRIGHT

Copyright (c) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.

Vous avez l’autorisation de créer et de distribuer des copies textuelles de ce manuel, à condition que la notice de copyright et la notice de permission soient préservées dans toutes les copies.

Vous avez l’autorisation de copier, distribuer et/ou modifier ce documents sous les conditions de la GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la Free Software Foundation; avec comme sections invariantes « GNU General Public License » et « GNU Free Documentation License », sans texte avant ou après. Une copie de la licence est incluse dans la section intitulée « GNU Free Documentation License ».

TRADUCTION

Sébastien Blanchet, 2002 <sebastien.blanchet AT free.fr>


wget(1)