automaticke stahovani z ftp

Honza Pazdziora adelton na informatics.muni.cz
Čtvrtek Květen 27 08:50:24 MEST 2004


On Wed, May 26, 2004 at 05:37:28PM +0200, Lubos Kolouch wrote:
> 
> 4) stahnout EACEMIN20040526 na lokal a ujistit se, ze se korektne
> stahl (asi z ftp response ok)
> 5) pokud byl ten prenos prerusen, pokusit se 5x navazat
> 6) pokud prenos dobehl ok, smazat EACEMIN20040526 z ftp serveru
> 7) pokud se nepodarilo 5x stahnout, poslat mail
> 
> Vse mi je celkem jasne, ale nevim jak udelat bod 4) a 5), tj.
> jak pracovat s odpovedmi toho serveru. 
> 
> Zkousel jsem perldoc Net::FTP ale nenasel jsem tam, co potrebuji.

Dokumentace k

       get ( REMOTE_FILE [, LOCAL_FILE [, WHERE]] )

rika

	If an error was encountered undef is returned.

takze by melo stacit, ze Vam

	$ftp->get('EACEMIN20040526', $temp->filename)

vrati pravdivou hodnotu a vite, ze byl prenesen cely soubor. Pokud
chcete mit extra jistotu, tak pred nebo po prenosu zavolat

	$ftp->size('EACEMIN20040526');

a porovnat s delkou toho pomocneho souboru, do ktereho to budete
stahovat. Pomocny soubor vytvorite pomoci File::Temp. Alternativne,
v zavislosti na ocekavane delce toho souboru, muzete pouzit
i IO::Scalar a udelat get do pameti.

Co se tyce bodu 5), tak by mi prislo nejjednodussi mit citac
pocitajici do peti a pokud nebude po stazeni vse v poradku, tak udelat
cojavim goto, treba. Nebo while.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Perl