Jak korzystać z FTP za pomocą wiersza poleceń, aby pobrać wszystkie pliki?

6

Próbowałem użyć Filezilli i Cyberduck do przesyłania plików przez prosty serwer FTP. Mam następujące problemy:

  • Filezilla: Kiedy używam go do przesyłania plików, sprawdzam „Monitor aktywności”, użycie „% CPU” wynosi 150% - 200%. Byłem zszokowany. Mój mac zaczyna się opóźniać, więc go zatrzymuję.

  • Cyberduck: Kiedy ściągam folder z ftp, około 60 MB, w środku są małe pliki (* .php, * .jpg itp.). Pobranie plików zajęło około 8 godzin (czas wskazuje, ile czasu pozostało w cyberduck). Jeśli używam filezilli, zajmuje to tylko 1-3 minuty. Zauważyłem, że podczas korzystania z Cyberducka najpierw ustawia uprawnienia, a nie przenosi pliki bezpośrednio. I to trwało dość długo.

Dlatego poszedłem do google i odkryłem, że mac może używać Terminalu do łączenia się z serwerem ftp i pobierania plików.

ftp hostname
mget * (download all the files)

Teraz kolejny problem, powiedzmy, w moim ftp mam:

- blog(folder)
    - php(folder)
    - img(folder)
- others folder

Chcę pobrać „blog” i jego kolejne foldery i pliki. Czy mogę to zrobić w 1 wierszu poleceń? Jeśli nie, jak pobrać mój folder „blog”?

Pamiętam w poleceniu unix / linux, jest coś takiego:

- remove -R blba

które usuwają rekurencyjnie folder blba (jego kolejne foldery i pliki), zastanawiam się, czy polecenie ftp terminala mac może to obsługiwać.

Proszę doradź

jiali
źródło
Dźwięki takie jak Cyberduck nie działają w trybie wielowątkowym. W obszarze Preferencje - & gt; Karta Transfery upewnij się, że opcja „Transfer Files:” jest ustawiona na „Open new connection”. W zakładce Przepustowość upewnij się, że limit pobierania jest ustawiony na Nieograniczona przepustowość.
Ian C.

Odpowiedzi:

5

Program curl może pomóc w pobraniu pliku FTP, ale specjalizuje się w jednorazowych adresach URL (http, ftp itp.). Możliwe jest użycie Perla do skryptowania czegoś do listy, a następnie pobierania, ale jest znacznie łatwiejsze w użyciu!

Jednak wget nie jest standardowym programem OSX, więc musisz go ręcznie pobrać, skompilować i zainstalować (stosunkowo łatwe zadanie, o ile masz zainstalowany Xcode).

  1. Zainstaluj Xcode z App Store .
  2. Pobierz źródło wget
  3. Otwórz Terminal w katalogu, w którym zapisałeś źródło.

Uruchom następujące polecenia:

    $ tar xfvz wget-latest.tar.gz
    $ cd wget-*
    $ ./configure && make

Plik binarny wget zostanie utworzony w podkatalogu src. Stąd możesz uruchomić plik binarny bezpośrednio jako ./src/wget lub zainstaluj w / usr / local / bin:

    $ sudo make install

Teraz musisz tylko uciekać wget -r ftp: // nazwa użytkownika: passwd @ serwer / ścieżka / do / download Twoja witryna FTP zostanie rekurencyjnie pobrana z tej ścieżki!

Pamiętaj tylko, że / path / to / download jest związane z nazwą użytkownika, z którą się logujesz ... a hasła FTP są notorycznie niezabezpieczone :)

adamrmcd
źródło
1
Opcjonalnie: zainstaluj Xcode, zainstaluj homebrew , zrobić brew install wget.
Ian C.
1

Jeśli chcesz kontynuować bez Xcode, możesz również użyć curlmirror który opiera się na curl który jest już dostarczany z OSX. W przypadku otrzymania skryptu ze strony internetowej, o której mowa powyżej, musisz zmienić nazwę pierwszej linii na #!/usr/bin/perl w wybranym edytorze tekstu.

nohillside
źródło
0

Proponuję przełączyć się na najnowszą wersję Cyberduck z migawkami, która powinna poprawić inicjalizację transferu pobierania.

David Kocher
źródło