Назад | Перейти на главную страницу

wget начинает загрузку, затем останавливается "не может писать в"

Я использую wget для зеркалирования некоторых файлов с одного сервера на другой. Я использую следующую команду:

wget -x -N -i http://domain.com/filelist.txt

-x = Потому что я хочу сохранить структуру каталогов

-N = отметка времени, чтобы получать только новые файлы

-i = Чтобы загрузить список файлов из внешнего файла, по одному в каждой строке.

Маленькие файлы, такие как один, который я тестирую, большой размер - 326 КБ.

Но другой, который составляет 5 ГБ, загружает только 203 МБ, а затем останавливается (это всегда 203 МБ плюс-минус несколько килобайт)

Показанное сообщение об ошибке:

Невозможно записать в âpath / to / file.zipâ

(Я не уверен, почему появляются странные символы до и после. Я использую Putty в Windows, и это может иметь какое-то отношение, а может и не иметь к этому никакого отношения, поэтому я оставил их. Я полагаю, что нет.).

Полный ответ выглядит следующим образом: (Я заменил пути, ip и доменное имя)

--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Разрешение domain.com ... MY_IP Подключение к domain.com | MY_IP |: 80 ... подключено. HTTP-запрос отправлен, ожидает ответа ... 200 OK Длина: 161 [text / plain] Серверный файл не новее, чем локальный файл âdomain.com / filelist.txtâ

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Подключение к domain.com | MY_IP |: 80 ... подключено. HTTP-запрос отправлен, ожидает ответа ... 200 OK Длина: 5502192869 (5.1G) [приложение / zip] Размеры не совпадают (локальный 213004288) - получение.

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Подключение к domain.com | MY_IP |: 80 ... подключено. HTTP-запрос отправлен, ожидает ответа ... 200 OK Длина: 5502192869 (5.1G) [application / zip] Сохранение в: âdomain.com / path / to / file.zipâ

3% [====>
] 213 003 412 8,74 М / с за 24 с

Невозможно записать на âdomain.com / path / to / file.zipâ

Кажется, не имеет значения, существует ли каталог пути уже или создается на лету.

Кто-нибудь знает, почему он останавливается и как я могу это исправить?

Любая помощь будет очень оценена.

РЕДАКТИРОВАТЬ: Я также пробовал просто выполнить wget, без ввода файла и переименовать файл. На этот раз он загружает чуть больше 3 ГБ, а затем выдает такую ​​же ошибку записи.

wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip

Вы получите эту ошибку, если у вас закончится место на диске. запустите df, и вы увидите, находится ли каталог, в который вы пишете, на 100%

Это проблема с длинным URL. Я тоже с этим столкнулся. Итак, я использовал bit.ly и сократил URL-адрес. Работает как шарм!

Я только что добавил - к tar команда после трубы после wget

я имел

wget https://example.com/path/to/file.tar.gz -O -|tar -xzf -C /path/to/file

затем изменил его на

wget https://example.com/path/to/file.tar.gz -O - | tar -xzvf - -C /path/to/file

Я получал ту же ошибку в этой команде:

sudo wget -O - https://nightly.odoo.com/odoo.key | apt-key add -

проблема заключалась в sudo для второй команды, и я решил ее:

sudo su

Если он начинает сохранять большой файл и записывает из него 203 МБ, я подозреваю, что у вас либо полная файловая система на принимающей стороне, либо время ожидания сетевого подключения истекает.

Вы можете использовать df -h на принимающем сервере, чтобы узнать, заполнена ли файловая система

Ознакомьтесь с этим ответом для проблем с тайм-аутом с wget:

https://stackoverflow.com/questions/2291524/does-wget-timeout

Кроме того, повторите попытку передачи, которая не удалась, и опустите параметр -N timestamp

Также запустите ulimit -a, чтобы узнать, есть ли ограничение на размер файла на принимающем сервере.

Наконец разобрался, и это была проблема с местом. Это проблема с облачным сервером 1 и 1, подробнее об этом здесь: http://www.mojowill.com/geek/1and1-dynamic-cloud-server-disk-allocation/

Я делал что-то подобное:

wget -x -N -i http://domain.com/filelist.txt

Я получал:

--2016-12-09 07:44:23--  https://www.example.com/dir/details?abc=123&def=456
Resolving www.example.com (www.example.com)... 1.2.3.4
Connecting to www.example.com (www.example.com)|1.2.3.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
details?abc=123&def=456: No such file or directory

Cannot write to ‘details?abc=123&def=456’ (Success).

В моем эквивалентном файле filelist.txt у меня был URL-адрес вроде:

https://www.example.com/dir/details?abc=123&def=456

Итак, для отладки я попытался создать тот же файл, который пытался создать wget:

touch "details?abc=123&def=456"
touch: cannot touch ‘details?abc=123&def=456’: No such file or directory

Альт! Похоже, что ? была проблема, но хорошей практикой было бы удалить все специальные символы из имен файлов, представьте, что & будет делать, если не сбежал.