programing

부분적으로 복사된 파일로 scp를 재개하는 방법은 무엇입니까?

stoneblock 2023. 5. 4. 17:57

부분적으로 복사된 파일로 scp를 재개하는 방법은 무엇입니까?

나는 scp shell 명령을 사용하여 파일의 큰 폴더를 복사합니다.

하지만 어느 시점에서 실행 중인 명령어(Ctrl+C 또는 kill)를 죽여야 했습니다.

내가 이해하기로는 scp가 순차적으로 파일을 복사했기 때문에 부분적으로 복사된 파일이 하나만 있을 것입니다.

성공적으로 복사된 파일을 덮어쓰지 않고 부분적으로 복사된 파일을 적절하게 처리하려면 어떻게 동일한 scp 명령을 다시 시작할 수 있습니까?

추신: 저는 rsync에서 이런 일을 할 수 있다는 것을 알지만, scp가 왠지 더 빠르고 대신 사용합니다.

사용해야 합니다.rsync위에ssh

rsync -P -e ssh remoteuser@remotehost:/remote/path /local/path

키 옵션은 입니다. 이는 다음과 같습니다.--partial --progress

기본적으로 rsync는 전송이 중단되면 부분적으로 전송된 파일을 삭제합니다.일부 환경에서는 부분적으로 전송된 파일을 보관하는 것이 더 바람직합니다.--partial 옵션을 사용하면 rsync에 부분 파일을 유지하도록 지시하여 파일의 나머지 부분을 훨씬 빠르게 전송합니다.

기타 옵션 등-a(아카이브 모드의 경우) 및-z(압축을 활성화하기 위해)도 사용할 수 있습니다.

설명서: https://download.samba.org/pub/rsync/rsync.html

rsync의 대안:

사용하다sftp옵션으로-r(전체 디렉토리를 지속적으로 복사) 및 옵션-asftpget명령 "기존 파일의 부분 전송을 허용합니다."

필수 구성 요소:당신의.sftp구현은 이미 다음과 같습니다.get와 함께-a선택.

예:

디렉터리 복사/foo/bar원격 서버에서 로컬 현재 디렉토리로 이동합니다.디렉터리bar로컬 현재 디렉토리에 생성됩니다.

echo "get -a /foo/bar" | sftp -r user@remote_server

OpenSSH 6.3 이후에는 에서 명령을 사용할 수 있습니다.sftp.

이것은 다음과 같은 구문을(를)get기존 로컬 파일의 끝에서 전송을 시작한다는 점을 제외하고는,

echo "reget /file/path" | sftp -r user@server_name

가 있습니다.-a명령 또는 글로벌 명령줄 스위치로 전환합니다.

또 다른 가능성은 정지할 때 이미 시작한 scp를 복구하려고 시도하는 것입니다.

ctrl+z를 눌러 백그라운드로 이동하고 중지한 다음 수신 서버로 SSH를 전송하고 로그인한 다음 종료합니다.이제 scp 프로세스를 fg하고 'stalled'에서 다시 시작하는 것을 보십시오!

rsync가 초기에 정상적으로 실행된 몇 초 후에도 정지되면 60초마다 다운로드를 시작하고 다시 시작하는 다음과 같은 무차별적인 강제 솔루션이 제공되었습니다.

cat run_me.sh
#!/bin/bash
while [ 1 ]
do
  rsync --partial --progress --rsh=ssh user@host:/path/file.tgz file.tgz &
  TASK_PID=$!
  sleep 60
  kill $TASK_PID
  sleep 2
done

▁the를 사용할 수 .-rsh그리고.-P의 옵션입니다.rsync.-P이며 부분다용며이입니다.-rsh전송이 SSH procotol을 초과함을 나타냅니다.

한 명령어는과 같습니다.rsync -P -rsh remoteuser@remotehost:/remote/path /local/path

나는 어제 같은 문제를 받았는데, scp를 통해 거대한 sql 덤프를 전송했고, 운이 좋았습니다.wget --continue the_url

블로그 게시물은 기본적으로 http://www.cyberciti.biz/tips/wget-resume-broken-download.html 을 꽤 잘 설명하고 있습니다.

wget --continue url

언급URL : https://stackoverflow.com/questions/26411225/how-to-resume-scp-with-partially-copied-files