wget은 다운로드를 시작한 다음 "쓰기 할 수 없습니다"를 중지합니다


13

wget을 사용하여 한 서버에서 다른 서버로 일부 파일을 미러링합니다. 다음 명령을 사용하고 있습니다.

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

-x = 디렉토리 구조를 유지하고 싶기 때문에

-N = 새 파일 만 가져 오기위한 타임 스탬프

-i = 각 줄에 하나씩 외부 파일에서 파일 목록을 다운로드합니다.

테스트중인 파일과 같은 작은 파일은 326kb 큰 다운로드입니다.

그러나 5GB 인 다른 하나는 203mb 만 다운로드 한 다음 중지합니다 (항상 203MB는 몇 킬로바이트를 주거나 가져옵니다)

표시되는 오류 메시지는 다음과 같습니다.

path / to / file.zip에 쓸 수 없습니다

(이전과 이후에 이상한 문자가 왜 있는지 확실하지 않습니다. Windows에서 Putty를 사용하고 있는데 이것과 관련이있을 수도 있고 없을 수도 있으므로 그대로 두었습니다.

전체 응답은 다음과 같습니다 (경로, 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) [application / 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â


24 %에서 3 % [====> ] 213,003,412 8.74M / s

âdomain.com / path / to / file.zip에 쓸 수 없습니다

경로 디렉토리가 이미 존재하거나 즉석에서 생성되면 아무런 차이가없는 것 같습니다.

누구나 왜 멈추고 어떻게 고칠 수 있는지 알고 있습니까?

도움을 주시면 감사하겠습니다.

편집 : 또한 wget을 수행하고 파일을 입력하지 않고 파일 이름을 바꾸려고했습니다. 이번에는 3GB 이상을 다운로드 한 다음 같은 쓰기 오류가 발생하지 않습니다.

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

당신은 당신의 경로에 특별한 문자가 있습니까?
JMeterX

명령 전에 "cd / tmp &&"를 입력하면 예상대로 작동합니까?

디스크가 꽉 찼습니까?
Jenny D

디스크가 꽉 차지 않았으며 특수 문자가 없습니다. 경로의 길이는 87 자이지만 일부 인터넷 검색은 긴 이름에 문제가 있음을 보여주었습니다 (파일 이름은 29 자에 불과합니다) tmp에서도 동일한 방식으로 실패합니다.
John Mellor

@FreezeDriedPop 파일 이름이 비교적 길기 -O때문에 다음 옵션을 사용하여 변경할 수 있습니다.wget -O test.zip http://link
JMeterX

답변:


7

디스크 공간이 부족하면이 오류가 발생합니다. df를 실행하면 작성중인 디렉토리가 100 %인지 확인할 수 있습니다


4

긴 URL에 문제가 있습니다. 나도 그것을 직면했다. 그래서 bit.ly를 사용하고 URL을 줄였습니다. 매력처럼 작동합니다!


확실합니까? 트랜잭션이 시작될 때만 사용되는 URL과 관련된 문제 일 때 다운로드가 시작되고 중단 될 가능성은 거의 없습니다.
Felix Frank

예. 나는 같은 문제가 있었다. 시도 해봐.
Namchester

문제는 리눅스가 긴 URL을 인식 할 수 없다는 것입니다.
Namchester

나는 당신이 껍질을 의미한다고 생각합니까? 커널은이 실패에 가장 결백하기 때문입니다. 쉘의 경우에도 가능하지는 않지만 다시 발생하면 다운로드를 시작할 수 없었습니다 wget. 예상 프로세스를 수행 하기 전에 쉘에서 오류가 발생했습니다 .
Felix Frank

1
나에게는이 URL의 쿼리 문자열이었다 -wget http://dltr.org/skin/frontend/lowes/default/css/custom.css?001
Damodar Bashyal

1

방금 wget 후 파이프 뒤에 명령 에 a -를 추가했습니다.tar

나는했다

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

tar의 경우에도`-`를 잊지 마십시오 :).
Shital Shah

0

대용량 파일 저장을 시작하고 203MB를 쓰면 수신 측에 전체 파일 시스템이 있거나 네트워크 연결 시간이 초과 된 것으로 의심됩니다.

수신 서버에서 df -h를 사용하여 파일 시스템이 가득 찼는 지 확인할 수 있습니다.

wget의 시간 초과 문제에 대해서는이 답변을 확인하십시오.

/programming/2291524/does-wget-timeout

또한 실패한 전송을 다시 시도하고 -N 시간 소인 옵션을 생략하십시오.

또한 ulimit -a를 실행하여 수신 서버에 파일 크기 제한이 있는지 확인하십시오.


나는 전문가는 아니지만 CentOS 6을 실행하고 있다고 생각합니다. 또한 문자 표현을 확인하는 방법을 잘 모르겠습니다. 다운로드를 시작하고 다른 작은 파일은 정상적으로 다운로드하지만 문제처럼 들리지 않습니다.
John Mellor

다운로드에 성공한 파일의 이름에 재미있는 문자가 있습니까?
DisgruntledUser

점이 이상한 문자 (예 : "megapack_4.11.zip")가 아닌 이상 이상한 문자는 없습니다. 그러나 다시 한 번 "bigfile.zip"이라는 이름으로 시도했지만 동일한 문제가 발생합니다.
John Mellor

아마도 UTF-8과 다른 문자 표현으로 설정된 것은 퍼티뿐 일 것입니다.
DisgruntledUser

그래, 나는 그것이 그것이 문제라고 생각하지 않는다. 퍼티에서 복사하고 붙여 넣을 때 방금 언급했다. 쓸 수없는 진짜 문제.
John Mellor


0

나는 비슷한 것을하고 있었다 :

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

비올라! ?문제가 된 것처럼 보이지만 파일 이름에서 모든 특수 문자를 제거하고 &이스케이프하지 않으면 어떻게 될지를 상상하는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.