Chcę skopiować wszystkie pliki i foldery z jednego hosta na inny. Pliki na starym hoście znajdują się w / var / www / html i mam tylko dostęp FTP do tego serwera i nie mogę TARować wszystkich plików. Regularne połączenie ze starym hostem przez FTP prowadzi mnie do folderu / home / admin.
Próbowałem uruchomić następujące polecenie z mojego nowego serwera:
wget -r ftp://username:[email protected]
Ale wszystko, co otrzymuję, to złożony plik index.html.
Jaka jest właściwa składnia do rekurencyjnego używania wget przez FTP?
Odpowiedzi:
Spróbuj
-m
na--mirror
źródło
--ask-password
aby uniknąć przechowywania hasłahistory
.wget -m ftp://username:[email protected]/mydir/
Masz rację, po prostu potrzebujesz końca *:
W przypadku serwerów współdzielonych możesz użyć tego w następujący sposób:
Ponieważ większość współdzielonych serwerów ma ftp-username coś takiego jak nazwa użytkownika @ nazwa hosta, więc pierwsze polecenie wget nie działa, a drugie polecenie działa dobrze.
źródło
-m
albo-r -l inf
ponieważ -r ma domyślną głębokość rekurencji wynoszącą 5. Zobacz gnu.org/software/wget/manual/…Oprócz wget, możesz także używać lftp w trybie skryptowym. Poniższa komenda utworzy kopię lustrzaną zawartości danego zdalnego katalogu FTP w danym katalogu lokalnym i może zostać umieszczona w zadaniu cron:
Automatycznie obsługuje rekurencję do katalogów i umożliwia określenie zdalnego katalogu źródłowego, z którego można pobierać dane.
źródło
Możesz użyć „curlftpfs - zamontuj host ftp jako katalog lokalny”, a po zamontowaniu możesz użyć zwykłych narzędzi do plików, takich jak „cp -r”.
źródło
curlftpfs
ma teraz poważne problemy z wydajnością, chyba żelibcurl3-gnutls
Sprawdź poniższe polecenie wget, aby rekurencyjnie pobierać dane z FTP.
-r
: Do rekurencyjnego pobrania.-np
: Nie dla rodzica wstępującego.-nH
: Służy do wyłączenia tworzenia katalogu o nazwie takiej samej jak URL, tj. Abc.xyz.com--cut-dirs
: Służy do ignorowania liczby katalogów nadrzędnych. Wartość tej opcji będzie się różnić dla twojego polecenia.Możesz to sprawdzić, wykonując powyższe polecenie.
źródło
Użyj -m zamiast -r, ze względu na głębokość rekurencji.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
źródło
Powinien działać spróbuj:
źródło
Posługiwać się:
i będzie odzwierciedlać wszystkie pliki i foldery.
źródło
To jest właściwa składnia. Nie wiesz, dlaczego nie uzyskujesz oczekiwanych rezultatów.
Jak zawsze jest na to więcej niż jeden sposób. Wypróbuj ncftp, w szczególności ncftpget
źródło
Rozumiem, jeśli próbujesz zrzucić to do crona lub czegoś takiego, ale dlaczego po prostu nie ftp na serwer z normalnym klientem i mget *? To może być szybsza ścieżka do sukcesu.
źródło
Myślę, że to zadziała w twoim przypadku:
źródło
Natknąłem się na hosting Windowsa z nazwą użytkownika jako brinkster / nazwa użytkownika, więc wget rzuci błąd, jeśli użyjesz składni:
Aby to obejść, użyj
Musiałem stawić temu czoła z Windows hosting @ brinkster.
źródło
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
wykona zadanie lub możesz dodać * zamiast nazw plików: powoduje, że wget myśli o porcie, który jest niepoprawny w twoim przypadku.źródło