Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: flashrobot 02 Května 2010, 22:22:26

Název: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: flashrobot 02 Května 2010, 22:22:26
Zdravim,
potrebujem spravit skript, ktory na FTP a HTTP serveroch bude vyhladavat urcite typy suborov (napr. video a hudbu). Cize spustim skript s adresou ftp/http servera a ten mi vypise zelane subory.
Ako vidite v prilohe, FTP vyhladavanie som vyriesil tak, ze som si to mountol cez curlftps a tam som jednoducho findom prebehol adresar a pomocou file som zistil mime typ suboru.
Avsak ked som chcel tymto istym sposobom riesit aj HTTP, nastalo niekolko problemov: mountnut to viem iba ked na serveri bezi webdav, taktiez je treba dodatocne zadavat cestu k adresaru kde je webdav (napr /public/webdav) a najhorsie je to, ze pri spusteni FINDu to zamrzne pri vacsich .avi suboroch.
Potrebujem teda poradit, ako by som nejak rekurzivne ziskal vsetky priame linky k suborom, ktore su na webserveri, tym padom by som to nemusel ani mountovat a pouzivat webdav. Wget vie rekurzivne zistit linky, no zacne ich hned vsetky stahovat a to nemozem... Viac info komentare v skripte:)

http://pastebin.org/198379 (http://pastebin.org/198379)

Uvitam akekolvek napady vratane navrhov na vylepsenie uz fungujuceho FTP vyhladavaca, napr. aby nebolo potrebne pouzivat nadstardantne baliky ako curlftps.
Vsetkym vopred dakujem.
Název: Re: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: MacHala 04 Května 2010, 23:05:11
rtfm!
Citace: man wget
       ·   Chcete stáhnout všechny GIFy z adresáře na HTTP serveru.  Zkusili jste wget
           http://www.server.com/dir/*.gif, ale to nefungovalo, protože stahování z HTTP nepodporuje globbing. V
           tom případě použijte:

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

           Delší, ale ve výsledku stejné.  -r -l1 znamená rekurzivní stahování s maximální hloubkou 1. --no-par-
           ent znamená, že odkazy na rodičovský adresář se ignorují a -A.gif znamená, že mají být staženy pouze
           soubory GIF files.  -A "*.gif" by fungovalo stejně.

Název: Re: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: DuckD 05 Května 2010, 08:17:55
rtfm!
Citace: man wget
       ·   Chcete stáhnout všechny GIFy z adresáře na HTTP serveru.  Zkusili jste wget
           http://www.server.com/dir/*.gif, ale to nefungovalo, protože stahování z HTTP nepodporuje globbing. V
           tom případě použijte:

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

           Delší, ale ve výsledku stejné.  -r -l1 znamená rekurzivní stahování s maximální hloubkou 1. --no-par-
           ent znamená, že odkazy na rodičovský adresář se ignorují a -A.gif znamená, že mají být staženy pouze
           soubory GIF files.  -A "*.gif" by fungovalo stejně.


rtft!

píše o stáhnutí linků na soubory, nemá zájem stáhnout konkrétní soubory...
Název: Re: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: Peterx 05 Května 2010, 10:12:06
man wget....
Kód: [Vybrat]
wget --spider -r -l2 --no-parent -A.gif http://www.ubuntu.cz
Název: Re: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: MacHala 06 Května 2010, 01:32:35
errare humanum est.. zakladni rada (rtfm) ale byla kazdopadne spravna
Název: Re: Bash: rekurzivne ziskavanie linkov z webservera na stardantny vystup
Přispěvatel: flashrobot 09 Května 2010, 23:47:59
Diky moc chlapi, hlavny problem bol v tom, ze som mal stary wget a ten mal v rezime spider ovela skromnejsi vystup :)