이력서 파일 복사 리눅스 네트워크 문제로 인해 복사

리눅스에서 큰 파일의 사본을 어떻게 재개합니까? 거대한 파일 (서버 기가 바이트)이 부분적으로 네트워크 드라이브에 복사되었으며 시간이 오래 걸렸으며 현재 수정 된 네트워크 문제로 인해 복사 작업이 중지되기 전에 수행되었습니다. 파일 사본을 재개하려면 어떻게합니까? 비효율적 인 스크립트를 원하지 않고 ecp가 작동하지 않습니다 (큰 파일에서는 작동하지 않는 것 같습니다).



답변

나는 노력할 것이다 rsync -a /from/file /dest/file.


답변

로컬 파일에 추가해야하고 rsync (체크섬 계산에 오랜 시간이 걸릴 수 있음)를 사용하지 않으려는 경우 curl을 사용할 수 있습니다. 예를 들어 느린 이동식 USB 스틱에 큰 파일이 마운트되어 /media/CORSAIR/somefile.dat있고 절반 만 현재 디렉토리에있는 경우, 다시 시작하려면 다음을 수행하십시오.

curl -C - -O "file:///media/CORSAIR/somefile.dat"


답변

예 rsync는 갈 길입니다. 나를 위해 rsync + ssh를 통해 100GB 이상의 데이터를 전송했습니다. 실제 백업 사본을 찾고 있다면 -a(아카이브) 옵션을 사용하여 파일 속성 (시간, 소유자, 권한 등)을 유지해야합니다.

host1> rsync -aP file user@host2:/path/to/new/dir/

또한 마이그레이션 과정에서 변경 될 수있는 큰 파일을 복사하는 데 유용합니다. 당신은 할 수 미리로드 , 대상에 최종 사본을 준비하면 데이터를이 짧은 시간 동안 다시 만 할. rsync를 사용하면 실제 가동 중지 시간을 최대한 활용할 수 있습니다.

PS v(verbose)를 사용하면 많은 파일의 전송 속도가 느려질 수 있습니다.


답변

원하는 명령은 다음과 같습니다.

rsync -v --append /path/to/afile /mnt/server/dest/afile

ssh를 통해 서버에 액세스하고 rsync를 그런 식으로 실행할 수 없다면 FlyingFish 명령이 가장 좋습니다.


답변

rsync는 대상 서버에 rsync가있는 경우에만 좋습니다. 이 경우 실제로 최상의 솔루션입니다.

그러나 그렇지 않다. rsync의 요점은 변경된 파일을 큰 파일로만 복사하는 것이므로 이러한 변경된 부분은 파일의 어느 위치 에나있을 수 있다고 가정합니다. 이것은 이미 복사 된 모든 블록을 체크섬한다는 것을 의미합니다. 원격 끝에 rsync가 없으면 로컬 rsync는 이미 전송 된 모든 것을 다시 읽음으로써 시작됩니다.

소스 시스템에 웹 또는 ftp 서버가있는 경우 “–continue”옵션을 사용하여 대상 서버에서 wget을 사용할 수 있습니다. (또는 “–continue-at [-| size]”옵션으로 말림).

대상 컴퓨터에 FTP 서버가있는 경우 –append 옵션과 함께 소스 컴퓨터에서 curl을 사용할 수 있습니다.

최후의 수단으로 dd를 “bs =”(블록 크기), “skip =”및 “seek =”인수와 함께 사용할 수 있습니다. 예를 들면 다음과 같습니다.

2048 바이트 블록을 사용할 수 있다고 가정 해 봅시다. 대상 파일이 현재 2’048’000’000 바이트 (2GB) 인 경우 2048 바이트의 1’000’000 블록입니다. 나머지 소스 파일을 대상에 추가하려면

dd if = source_file of = 대상 _file bs = 2048 skip = 1000000 seek = 1000000

더 큰 블록 크기를 사용하여 전송 속도를 향상시킬 수 있습니다. bs =로 블록 크기를 지정하고 건너 뛰기 및 찾기에 주어진 값은 바이트가 아닌 블록 단위라는 것을 기억하십시오.


답변