Korzystam z wget, aby kopiować niektóre pliki między serwerami. Używam następującego polecenia:
wget -x -N -i http://domain.com/filelist.txt
-x = Ponieważ chcę zachować strukturę katalogów
-N = Znacznik czasu, aby uzyskać tylko nowe pliki
-i = Aby pobrać listę plików z pliku zewnętrznego, po jednym w każdym wierszu.
Małe pliki, takie jak jeden, testuję, a pobieranie 326 KB jest w porządku.
Ale inny, 5 GB, pobiera tylko 203 MB, a następnie zatrzymuje się (zawsze 203 MB daje lub bierze kilka kilobajtów)
Wyświetlany komunikat o błędzie to:
Nie można pisać do „path / to / file.zip”
(Nie jestem pewien, dlaczego przed i po są dziwne postacie. Używam Putty w Windowsie, a to może, ale nie musi mieć z tym nic wspólnego, więc zostawiłem je. Nie zakładam.)
Pełna odpowiedź jest następująca: (zastąpiłem ścieżki, adres IP i nazwę domeny)
--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Rozwiązywanie domeny.com ... MY_IP Łączenie z domeną.com | MY_IP |: 80 ... podłączony. Wysłano żądanie HTTP, oczekując na odpowiedź ... 200 OK Długość: 161 [tekst / zwykły] Plik serwera nie nowszy niż plik lokalny âdomain.com / filelist.txtâ
--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Łączenie z domeną.com | MY_IP |: 80 ... podłączony. Wysłano żądanie HTTP, oczekując na odpowiedź ... 200 OK Długość: 5502192869 (5.1G) [application / zip] Rozmiary nie pasują (lokalnie 213004288) - pobieranie.
--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Łączenie z domeną.com | MY_IP |: 80 ... podłączony. Wysłano żądanie HTTP, oczekując na odpowiedź ... 200 OK Długość: 5502192869 (5.1G) [application / zip] Zapisywanie do: âdomain.com / path / to / file.zipâ
3% [====>
] 213,003,412 8,74 M / s w ciągu 24sNie można pisać na âdomain.com / path / to / file.zipâ
Wydaje się, że nie ma znaczenia, czy katalog ścieżek już istnieje lub jest tworzony w locie.
Czy ktoś ma pojęcie, dlaczego to się zatrzymuje i jak mogę to naprawić?
Jakakolwiek pomoc jest jak najbardziej doceniana.
EDYCJA: Próbowałem także zrobić wget, nie wprowadzać pliku i zmieniać jego nazwy. Tym razem pobiera trochę ponad 3 GB, a następnie daje to samo, nie może zapisać błędu.
wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip
źródło
-O
opcję za pomocą opcjiwget -O test.zip http://link
Odpowiedzi:
Ten błąd pojawi się, jeśli zabraknie miejsca na dysku. uruchom df, a zobaczysz, czy katalog, w którym piszesz, ma 100%
źródło
Jest to problem z długim adresem URL. Ja też stawiłem temu czoła. Więc użyłem bit.ly i skróciłem adres URL. Działa jak marzenie!
źródło
wget
procesu.wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
Właśnie dodałem a
-
dotar
polecenia po potoku po wgetmiałem
następnie zmieniłem na
źródło
Jeśli zacznie zapisywać duży plik i zapisze 203 MB, podejrzewam, że masz albo pełny system plików po stronie odbierającej, albo upływa limit czasu połączenia sieciowego.
Możesz użyć df -h na serwerze odbierającym, aby sprawdzić, czy system plików jest pełny
Sprawdź tę odpowiedź na problemy z przekroczeniem limitu czasu wget:
/programming/2291524/does-wget-timeout
Spróbuj ponownie wykonać transfer, który się nie powiódł, i pomiń opcję -N znacznik czasu
Uruchom także ulimit -a, aby sprawdzić, czy istnieje limit rozmiaru pliku na serwerze odbierającym
źródło
W końcu to rozgryzłem i był to problem z przestrzenią. Jest to problem z serwerami 1and1 Cloud Server, więcej na ten temat tutaj: http://www.mojowill.com/geek/1and1-dynamic-cloud-server-disk-allocation/
źródło
Robiłem coś podobnego do:
Otrzymywałem:
W moim równoważnym pliku filelist.txt miałem URL taki jak:
Aby debugować, próbowałem utworzyć ten sam plik, który wget próbował utworzyć:
Altówka! Wygląda na to, że na tym
?
polegał problem, ale dobrą praktyką byłoby usunięcie wszystkich znaków specjalnych z nazw plików, wyobraź sobie, co&
zrobi, jeśli nie ucieknie.źródło
Otrzymałem ten sam błąd w związku z tym poleceniem:
problem polegał na sudo dla drugiego polecenia i rozwiązuję go za pomocą:
źródło