Portál AbcLinuxu, 4. července 2025 12:08
Zdravím, opět řeším nějaký problém a nějak sem se kousnul:( Nejprve popíši problém.
Potřeboval bych ve skriptu otevřít FTP spojení se serverem, jakmile se přihlásím odešlu třeba PASV (to bude asi ta nejlepší možnost). Obdržím port, který vrátím na standardní výstup, nebo do souboru. Spojení ještě neruším, to je důležité. Pak pošlu třeba LIST. Počkám než příkaz proběhne a spojení s FTP ukončím.
Sedím nad tím už dva dny a marně přemýšlím a googloji. Napadá mě jen toto, udělat to pomocí lftp
(zatím jsem nepřišel na to jestli umí vracet hodnotu v průběhu běhu programu) nebo nějakým perlovkým skriptem. Perl by to snad umět mohl, ale nejsem zrovna PerlGuru.
Napadá někoho něco? Děkuji za odpovědi.
Tiskni
Sdílej:
man netrc
?
expect
#!/usr/bin/env python import ftplib ftp = ftplib.FTP('ftp.fi.muni.cz') ftp.login() host, port = ftp.makepasv() file('ftpport', 'w').write('%d\n' %port) ftp.retrlines('LIST') ftp.close()Číslo portu se uloží do souboru s názvem "ftpport".
#!/usr/bin/env python import ftplib, sys ftp = ftplib.FTP('ftp.fi.muni.cz') ftp.login() ftp.sendcmd('TYPE A') conn = ftp.transfercmd('LIST') fp = conn.makefile('rb') print conn.getsockname() print conn.getpeername() print 'Spojeni navazano. Stiskni Enter pro pokracovani' sys.stdin.readline() print fp.read() fp.close() conn.close() ftp.close()
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.