[gull] truc et astuce: lynx + wget pour charger un dir ftp via proxy http

Félix Hauri felix at f-hauri.ch
Tue May 18 11:59:02 CEST 2004


Je voulais charger mozilla pour window sur sunsite via un proxy http.
L'option ``-r'' de wget est dangereuse, surtout avec du ftp affichés en html...

L'avantage de ``lynx'' est de faire du html facile à lister et de présenter les 
URLs de façon propre. L'avantage de wget est d'être rapide, efficace,
d'afficher la progression et surtout de respecter les attibuts des fichiers.

L'avantage de la console shell est la touche ``flèche vers le haut'':
D'abord: 

$ env ftp_proxy=http://servprox.localdomain:8080/ lynx sunsite.cnlab-switch,ch

Après un petit peu de recherche sur le site, j'ai repéré le répertoire que
je voulais charger. Je copie l'adresse qui apparait en haut de l'écran puis
je quitte lynx et je tape: 

``flèche vers le haut'' ``Ctrl-w'' -dump ``espace'' ``click milieu de la souris''.

$ env ftp_proxy=http://servprox.localdomain:8080/ lynx -dump \ 
    ftp://mirror.switch.ch/mirror/mozilla/mozilla/releases/mozilla1.7b/

Je peux lire les URLs des fichiers en fin de ``dump'' et composer mon 
expression régulière pour grep.

Il faut encore enlever le nro en début de ligne, séparé d'un espace.
C'est pourquoi je remplace les espaces par des sauts de ligne (commande tr),
je ``grep'' ce qui m'intéresse, ``sort -u'' m'assure que je n'aurrai qu'une 
occurence de chaque ligne, enfin ``xargs -n1'' lance ``wget'' autant de fois
que j'aurrais trouvé de fichier à charger.

$ env ftp_proxy=http://servprox.localdomain:8080/ lynx -dump \
    ftp://mirror.switch.ch/mirror/mozilla/mozilla/releases/mozilla1.7b/ |\
    tr \  \\n |\
    grep 'win.*instal.*exe$\|README$' |\
    sort -u |\
    xargs -n1 env ftp_proxy=http://servprox.localdomain:8080/ wget

$ mkdir windows-xpi
$ cd windows-xpi
$ env ftp_proxy=http://servprox.localdomain:8080/ lynx -dump \
 ftp://mirror.switch.ch/mirror/mozilla/mozilla/releases/mozilla1.7b/windows-xpi |\
    tr \  \\n |\
    grep type=i$ |\
    sort -u |\
    xargs -n 1 env ftp_proxy=http://servprox.localdomain:8080/ wget

( Là, je l'ai un peu mis en forme, c'est clair qu'à force de ``flèche vers le 
  haut'', cela ressemble plus à:

  $ env ftp_proxy=http://servprox.localdomain:8080/ lynx -dump ftp://mirror.s
  witch.ch/mirror/mozilla/mozilla/releases/mozilla1.7b/ | tr \  \\n | grep 'w
  in.*instal.*exe$\|README$' | sort -u | xargs -n1 env ftp_proxy=http://servp
  rox.localdomain:8080/ wget
  $ mkdir windows-xpi
  $ cd windows-xpi
  $ env ftp_proxy=http://servprox.localdomain:8080/ lynx -dump ftp://mirror.s
  witch.ch/mirror/mozilla/mozilla/releases/mozilla1.7b/windows-xpi | tr \  \\
  n | grep type=i$ | sort -u | xargs -n 1 env ftp_proxy=http://servprox.local
  domain:8080/ wget

;-)

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list