Portál AbcLinuxu, 7. května 2025 20:02

Dotaz: rekurzivní stahování z ftp pomocí wget přes http proxy

3.10.2003 12:48 milda
rekurzivní stahování z ftp pomocí wget přes http proxy
Přečteno: 2764×
Odpovědět | Admin
Dobrý den, pokouším se pomocí wget 1.8.0 stáhnout z ftp obsah celého adresáře. Jsem připojen přes http proxy. Dělám to zhruba takhle:

wget -r --proxy-user=login1 --proxy-passwd=heslo1 ftp://login2:heslo2@server/adresar/

výsledkem je, že v mém $HOME se vytvoří adresáře server/adresar/index.html

a index.html obsahuje seznam souborů co bych rád stáhnul. Pokud zadám přímo jeden konkrétní soubor, tak se stáhne bez problémů.

Pokud zadám jakékoliv expanzní znaky * ? v libovolné kombinaci tak se mi vrátí:

Varování: HTTP nepodporuje žolíkové znaky. ... Proxy požadavek odeslán, program čeká na odpověď ... 500 Error from proxy 12:45:46 CHYBA 500: Error from proxy.

Tak nevím jestli dělám něco špatně já, nebo je chyba na proxy serveru. Předem dík za pomoc.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.10.2003 13:33 ivok
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já bych řekl, že chyba není nikde. HTTP prostě nepodporuje žolíkové znaky :-) Musíte to vyřešit nějak bez nich (tj. nezadávat * a ?).
3.10.2003 14:26 Ladislav Sückr | skóre: 21
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
wget --recursive --level=1 www.nekde.cz/index.html wget načte stránku index.html z adresy www.nekde.cz. Pokud tato stránka obsahuje odkazy a wget má nastavený parametr --recursive zjistí do jaké hloubky má tyto odkazy následovat --level=1 tzn. že načte jen obsah prvního odkazu. Pokud tento odkaz ukazuje na další odkaz a chceš načíst i ten musíš zadat --level=2. Pokud chceš načítat a procházet úplně všechno zadej --level=0 ale pozor na to!! No a pro to ftp bych zkusil třeba i parametr --follow-ftp. Jinak zkus napsat wget --help :-) P.S. *? opravdu zadávat nemůžeš ;-)
Myslet špatně je lepší než nemyslet vůbec.
3.10.2003 15:56 milda
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Dik za radu, ale tohle všechno se píše v manu a i jinde a než jsem napsal sem, tak jsem docela dlouho hledal a zkoušel. PS: "Jinak zkus napsat wget --help" - tohle beru jako vtip PPS: "*? opravdu zadávat nemůžeš" - ???
6.10.2003 08:11 Ladislav Sückr | skóre: 21
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
chtěl jsem jenom říct že parametr --recursive bez --level nedělá nic alespoň podle toho co jsem zkoušel wget expanzivní znaky nebere - použuje je jako obyčejný znak (bez náhrady) tzn. že soubor *.html je požadavek na stažení souboru který se jmenuje *.html - není to jako v bashi --follow-ftp by asi pomohl protože wget je hlavně http a proto ho ftp zase až tak nebere
Myslet špatně je lepší než nemyslet vůbec.
8.10.2003 08:45 milda
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Tohle je napsáno v manu, já sice anglicky moc neválím, ale řekl bych že je to přesně opak Vašeho tvrzení. Tak nevím :-( -g on/off --glob=on/off Turn FTP globbing on or off. Globbing means you may use the shell-like special characters (wildcards), like *, ?, [ and ] to retrieve more than one file from the same directory at once, like: wget ftp://gnjilux.srk.fer.hr/*.msg By default, globbing will be turned on if the URL contains a globbing character. This option may be used to turn globbing on or off permanently. You may have to quote the URL to protect it from being expanded by your shell. Globbing makes Wget look for a directory listing, which is system-specific. This is why it currently works only with Unix FTP servers (and the ones emulating Unix "ls" output).
8.10.2003 09:01 milda
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Tento příkaz: wget --recursive --level=1 --follow-ftp -nc -g on --proxy-user=jmeno1 --proxy-passwd=heslo1 ftp://jmeno2:heslo2@nejaky.server.cz/home/jmeno2/adresar/ mi stahne pouze index.html Já už jsem to samozřejmě stáhl jinak, ale rád bych se dopídil toho jak to doopravdy je. Tak se nezlobte, že s tím pořád votravuju :-)
6.10.2003 08:51 Ladislav Sückr | skóre: 21
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
jo a ještě mě napadlo jestli ten ftp server kam se chceš připojit podporuje pasivní ftp pak bych radši použil přímo ftp
Myslet špatně je lepší než nemyslet vůbec.
3.10.2003 16:07 ivok
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
No a jakou teda máš otázku? Proč zadáváš ty "*" a "?"? A v tom staženém index.html nejsou ty požadované soubory jako odkazy, že se nestahuje rekurzivně?
4.10.2003 16:16 Antonin Fabicovic | skóre: 21
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
?
8.10.2003 13:46 Beda
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin

padlo tu uz --level=1 (-l 1) to udela na tvym prikladu server/adresar/soubor.jo i server/adresar/adresar.jo ale uz to udela server/adresar/adresar.jo/soubor.ne ani server/adresar/adresar.jo/adresar.ne, teda jestli se nepletu.

jinak pokud chces neco co vezme jen dany strom server/adresar/ a vse co je v nem, tak muzu doporucit www.rpmseek.com a hledej balickek "mirror" je to sada perlovskych skriptu a funguje ;)

konfigurak /etc/mirror.defaults:

package=ftp.fic.com.tw/motherboard
        site=nejaky.server.nekde
        remote_dir=/motherboard/
        local_dir=/mnt/mirror/
#       save_dir=/mnt/mirror.deleted/
        remote_user=anonymous
        remote_password=mirror
        remote_fs=dosish #pokud 
#       mail_to=nekomu@nekde
#       mail_prog=mail
#       mail_subject=-s 'mirror log pro $package'
        do_deletes=true
        max_delete_files=0%
        max_delete_dirs=0%
        save_deletes=true

takovych zaznamy package a techlde popisku k nim muzes mit kolik chces v /etc/mirror.defaults a pokud pak spustis "mirror", tak se postupne projdou vsechny.

uzitecny je "mirror -d -d -d -d -d -d" (nebo s min "-d")

a co dela tendle zaznam v mirror.defaults? prihlasi se na nejaky.server.nekde pod anonymous a heslem mirror. server posila vypisy podobne jako dir v dosu (dosish) pokud by slo treba o ftp.linux.cz, tak s/dosish/unix/g. neposila nikomu mail, ale mas navod, jak to nastavit. ma nastaveny mazani pokud zmizi soubory z nejaky.server.nekde, ale jen pokud je zmena mensi jak 0%, takze vlastne nic nesmaze, ale aspon upozorni, ze je potreba smazat (a nasledne by poslal email, kdyby se to odkomentovalo)

8.10.2003 13:55 Beda
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin

a jestli musis pres proxy, tak je otazka co umi proxy a na co se pak pripojuje na server. jestli je to squid a umi klient<-http->proxy<-ftp->server nebo jde o server s mod_ftp a je to vlastne klient<-http->proxy<-http->server nebo jestli je to treba suse proxy suite a je to klient<-ftp->proxy<-ftp->server

proste pokud je tam kdekoliv na ceste http, tak nemuzes pouzit ty "*", teda muzes, ale nebudou znamenat to o co se snazis. to jde jen v poslednim pripade, kdy to proste proxy preda vezme a da mgetu a nijak se to nezpracovava.

chyba je teda nejspis v tom o co se snazis a jakym zpusobem se o to snazis.

Stanislav Brabec avatar 9.10.2003 12:54 Stanislav Brabec | skóre: 45 | Praha
Rozbalit Rozbalit vše rekurzivní stahování z ftp pomocí wget přes http proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
HTTP sice neumí žolíkové znaky, ale wget má volby -A a -R, kterými si určíte, co chcete.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.