|
Bash pobranie plików z serwera
mauro - 27-01-2010 17:16
Witam. Potrzebuję skrypt, który połączy się z serwerem ftp i z danego katalogu pobierze wszystkie pliki o danym rozszerzeniu. Czy takie coś jest możliwe? Myślę, że tak tylko nie wiem jak to zrobić. Połączyć z serwerem potrafię ale nie pobrać te pliki bez uruchamiania skryptu na serwerze, na którym są pliki.
lessmian2 - 27-01-2010 18:08
Czy takie coś jest możliwe?
Tak, jest to możliwe, i nawet całkiem proste.
Z czym konkretnie masz problem? Próbowałeś w ogóle czegoś poszukać?
mauro - 27-01-2010 20:07
Dobrze, zrobiłem według kodu znalezionego w sieci. Kod wygląda tak: http://pastebin.pl/17676. #!/bin/bash HOME='/var/www/dema/dema' # HOST='h' USER='d' PASSWD='e9c' FILE='*.zip' mkdir $HOME cd $HOME
# Login, run get files ftp -nv $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd cstrike mget $FILE bye
# Cleanup exit 0
Problem polega jeszcze na tym, że nie kopiuje wszystkich plików, tylko skopiuje dwa i koniec, wyświetla tak jakby listę plików: Connected to h. 220 Remote system type is UNIX. Using binary mode to transfer files. 331 Password required for d. 230 User d logged in. 250 CWD command successful mget 10-1001261950-de_inferno.dem.zip? 200 PORT command successful 150 Opening BINARY mode data connection for 10-1001261950-de_inferno.dem.zip (10 38294 bytes) 226 Transfer complete. 1038294 bytes received in 20.29 secs (50.0 kB/s) mget 12-1001271859-de_cpl_mill.dem.zip? 200 PORT command successful 150 Opening BINARY mode data connection for 12-1001271859-de_cpl_mill.dem.zip (4 338808 bytes) 226 Transfer complete. 4338808 bytes received in 84.75 secs (50.0 kB/s) mget 2-1001252201-de_dust2.dem.zip? 200 PORT command successful 150 Opening BINARY mode data connection for 2-1001252201-de_dust2.dem.zip (31552 bytes) 226 Transfer complete. 31552 bytes received in 0.62 secs (49.6 kB/s) mget 2-1001252203-de_nuke.dem.zip? 200 PORT command successful 150 Opening BINARY mode data connection for 2-1001252203-de_nuke.dem.zip (154360 6 bytes) 226 Transfer complete. 1543606 bytes received in 30.16 secs (50.0 kB/s) mget 3-1001252256-de_dust2.dem.zip? mget 4-1001252314-de_dust2.dem.zip? mget 5-1 001261128-de_dust2.dem.zip? mget 6-1001261154-de_dust2.dem.zip? mget 7-100126133 5-de_dust2.dem.zip? mget 8_nuke-1001261359-de_dust2.dem.zip? mget 8_nuke-1001261 402-de_nuke.dem.zip? mget 9_inf-1001261923-de_inferno.dem.zip? mget cpl-10012718 46-de_cpl_mill.dem.zip? mget dd2-1001252055-de_dust2.dem.zip? mget dd2-100125211 2-de_dust2.dem.zip? mget dd2-1001252119-de_dust2.dem.zip? mget demo-1001251428-d e_dust2.dem.zip? mget demo-1001251430-aim_famas_x.dem.zip? mget demo-1001251450- aim_ak-colt.dem.zip? mget demo-1001251509-aim_map_deagle.dem.zip? mget demo-1001 251514-aim_map_hlo.dem.zip? mget demo-1001251657-de_dust2.dem.zip? mget demo-100 1251713-de_dust2.dem.zip? mget demo-1001251714-awp_greatwall.dem.zip? mget demo- 1001252022-de_nuke.dem.zip? mget gowno-1001271813-de_train.dem.zip? mget gowno-1 001271816-de_inferno.dem.zip? mget kanedd2-1001261514-de_dust2.dem.zip? mget kan edd2-1001261542-de_inferno.dem.zip? mget mix10-1001262304-de_dust2.dem.zip? mget mix10-1001262306-de_inferno.dem.zip? mget mix10-1001270628-de_dust2.dem.zip? mg et mix10-1001271411-de_nuke.dem.zip? mget mix9-1001261422-de_nuke.dem.zip? 221 Goodbye.
lessmian2 - 30-01-2010 19:48
mauro, sprawdź czy zadziała Ci poniższy kod:
#!/bin/bash HOME='/var/www/dema/dema' # HOST='h' USER='d' PASSWD='e9c' FILE='*.zip' mkdir $HOME cd $HOME
# Login, run get files ftp -niv $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd cstrike mget $FILE bye
# Cleanup exit 0
Pierwsza wersja u mnie też nie działała - trzeba było dodać parametr i przy wywołaniu programu ftp.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|