wget mulai mengunduh lalu berhenti "tidak bisa menulis ke"

13

Saya menggunakan wget untuk mem-mirror beberapa file dari satu server ke server lainnya. Saya menggunakan perintah berikut:

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

-x = Karena saya ingin menjaga struktur direktori

-N = Cap waktu untuk hanya mendapatkan file baru

-i = Untuk mengunduh daftar file dari file eksternal, satu pada setiap baris.

File kecil seperti yang saya uji itu 326kb unduhan besar baik-baik saja.

Tapi yang lain yaitu 5gb hanya mengunduh 203mb dan kemudian berhenti (itu selalu 203mb memberi atau mengambil beberapa kilobyte)

Pesan kesalahan yang ditampilkan adalah:

Tidak dapat menulis ke "path / ke / file.zip"

(Saya tidak yakin mengapa ada karakter aneh sebelum dan sesudah. ​​Saya menggunakan Putty di Windows dan ini mungkin atau mungkin tidak ada hubungannya dengan itu, jadi saya meninggalkan mereka. Saya kira tidak.).

Respons penuh adalah sebagai berikut: (Saya telah mengganti jalur, ip dan nama domain)

--2012-08-31 12: 41: 19-- http://domain.com/filelist.txt Menyelesaikan domain.com ... MY_IP Menyambung ke domain.com | MY_IP |: 80 ... terhubung. Permintaan HTTP terkirim, menunggu respons ... 200 OK Panjang: 161 [teks / polos] File server tidak lebih baru dari file lokal âdomain.com / filelist.txtâ

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Menghubungkan ke domain.com | MY_IP |: 80 ... terhubung. Permintaan HTTP terkirim, menunggu respons ... 200 OK Panjang: 5502192869 (5.1G) [aplikasi / zip] Ukurannya tidak cocok (213004288 lokal) - mengambil.

--2012-08-31 12: 41: 19-- http://domain.com/path/to/file.zip Menghubungkan ke domain.com | MY_IP |: 80 ... terhubung. Permintaan HTTP terkirim, menunggu respons ... 200 OK Panjang: 5502192869 (5.1G) [aplikasi / zip] Menyimpan ke: âdomain.com / path / ke / file.zipâ

3% [====>
] 213,003,412 8,74M / s dalam 24 detik

Tidak dapat menulis ke âdomain.com / path / ke / file.zipâ

Tampaknya tidak ada bedanya jika direktori path sudah ada atau dibuat dengan cepat.

Adakah yang tahu mengapa itu berhenti dan bagaimana saya bisa memperbaikinya?

Setiap bantuan dengan sangat dihargai.

EDIT: Saya juga mencoba melakukan wget, tidak ada input file dan mengubah nama file. Kali ini mengunduh sedikit lebih dari 3gb dan kemudian memberikan hal yang sama tidak dapat menulis kesalahan.

wget -x -N http://domain.com/path/to/file.zip -O files/bigfile.zip
John Mellor
sumber
Apakah Anda memiliki karakter khusus di jalur Anda?
JMeterX
Apakah ini berfungsi seperti yang diharapkan jika Anda mengetik "cd / tmp &&" sebelum perintah?
Apakah disk Anda penuh?
Jenny D
Disk pasti tidak penuh dan tidak ada karakter khusus. Meskipun panjang path adalah 87 karakter, beberapa Googling telah menunjukkan beberapa masalah dengan nama panjang (nama file hanya 29 karakter) gagal dalam cara yang sama di tmp.
John Mellor
@FreezeDriedPop Karena nama file Anda relatif panjang, Anda dapat mengubah menggunakan -Oopsi jadiwget -O test.zip http://link
JMeterX

Jawaban:

7

Anda akan mendapatkan kesalahan ini jika Anda kehabisan ruang disk. jalankan df dan Anda akan melihat apakah direktori tempat Anda menulis adalah 100%

Matahari
sumber
4

Ini masalah dengan URL yang panjang. Saya juga menghadapinya. Jadi, saya menggunakan bit.ly dan mempersingkat url. Bekerja seperti Mantra!

Namchester
sumber
Apakah kamu yakin Tampaknya tidak mungkin bahwa unduhan akan mulai dan terputus pada titik tertentu ketika masalah terkait dengan URL, yang hanya digunakan pada awal transaksi.
Felix Frank
Iya. Saya memiliki masalah yang sama. Cobalah.
Namchester
Saya pikir masalahnya adalah dengan linux tidak dapat mengenali url yang panjang.
Namchester
Saya kira maksud Anda shell? Karena kernel pasti tidak bersalah dari kegagalan ini. Bahkan untuk shell itu tidak mungkin, tetapi jika itu terjadi, sekali lagi, unduhan bahkan tidak dapat memulai - shell akan kesalahan sebelum bahkan mencari wgetproses prospektif .
Felix Frank
1
Bagi saya itu adalah string kueri di url -wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
Damodar Bashyal
1

Aku hanya menambahkan -ke tarperintah setelah pipa setelah wget

Saya punya

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

lalu mengubahnya menjadi

wget https://example.com/path/to/file.tar.gz -O - | tar -xzvf - -C /path/to/file
shadi
sumber
Jangan lupa `-` untuk tar juga :).
Shital Shah
0

Jika mulai menyimpan file besar dan menulis 203 MB, saya curiga Anda memiliki sistem file lengkap di sisi penerima atau koneksi jaringan sedang kehabisan waktu.

Anda dapat menggunakan df -h pada server penerima untuk melihat apakah sistem file sudah penuh

Lihat jawaban ini untuk masalah batas waktu dengan wget:

/programming/2291524/does-wget-timeout

Juga, coba kembali transfer yang gagal dan hilangkan opsi cap waktu -N

Juga, jalankan ulimit -a untuk melihat apakah ada batas ukuran file pada server penerima

Pengguna yang tidak puas
sumber
Saya bukan ahli tapi saya pikir ini menjalankan CentOS 6. Saya juga tidak yakin bagaimana memeriksa representasi karakter. Meskipun itu mulai mengunduh dan mengunduh file kecil lainnya dengan baik, jadi saya tidak berpikir itu terdengar seperti masalah.
John Mellor
Apakah file yang berhasil diunduh memiliki karakter lucu APAPUN dalam nama mereka?
Pengguna yang tidak puas
Tidak, tidak ada karakter aneh sama sekali, kecuali titik adalah karakter aneh misalnya "megapack_4.11.zip". Tapi sekali lagi saya sudah mencobanya hanya dengan nama "bigfile.zip" dan masalah yang sama terjadi.
John Mellor
Mungkin hanya Putty yang diatur ke representasi karakter yang berbeda dari UTF-8
DisgruntledUser
Ya saya benar-benar tidak berpikir itu masalahnya, saya hanya menyebutkannya ketika saya menyalin dan menempel dari Putty. Masalah sebenarnya yang tidak bisa ditulis.
John Mellor
0

Saya melakukan sesuatu yang mirip dengan:

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

Saya menerima:

--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).

Dalam file filelist.txt setara saya, saya punya URL seperti:

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

Jadi untuk debug saya mencoba membuat file yang sama yang coba dibuat wget:

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

Biola! Sepertinya ?itu masalahnya, tetapi praktik yang baik adalah menghapus semua karakter khusus dari nama file, bayangkan apa yang &akan dilakukan jika tidak lolos.

nikc
sumber