[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