을(를) 사용하여 대용량 파일을 복사하고 있는데 scp
대상에 복사할 공간이 충분하지 않을 수 있다는 것을 깨달았습니다. 몇 시간 동안 일시 중지했다가 나중에 다시 시작할 수 있는 방법이 있나요? 그리고 실패( no space left on device
)한 경우, 공간을 좀 비운 후에 다시 시작할 수 있나요?
( scp
이미 실행 중이므로 다른 프로그램을 사용하는 것과 같은 솔루션은 작동하지 않습니다.)
답변1
SIGSTOP을 사용하여 프로세스를 일시 중지하고 나중에 SIGCONT를 사용하여 계속할 수 있습니다. ( kill -l
신호 목록을 확인하고 ps
프로세스 ID를 얻는 데 사용하세요.)
그러나 이것이 작동하지 않을 가능성이 상당히 높습니다. 예를 들어 소스와 대상 사이에 끊어진 연결을 감지하고 '정리'하는 라우터가 있는 경우입니다. 대부분의 SOHO 라우터는 연결을 정리하면 메모리 사용량이 줄어들기 때문에 이렇게 하는 것 같습니다. (따라서 더 저렴한 라우터를 구축할 수 있습니다).
그런 일이 발생하면 scp를 사용하여 다시 복사해야 하거나 rsync를 사용할 수 있습니다.
Rsync는 기존 파일을 비교하여 불필요하게 데이터를 복사하지 않는다는 장점이 있습니다. 귀하의 경우에는 이미 존재하고 부분적으로 업로드된 파일을 감지하고 파일의 나머지 부분만 업로드해야 합니다.
구문은 다음과 같습니다rsync -v -e ssh /home/my_file [email protected]:~
-v는 자세한 내용을 나타냅니다. -e "ssh options" - SSH를 원격 쉘로 지정합니다.
-z
데이터를 압축할 수 있는 경우 데이터를 압축하기 위해 추가할 수 있습니다 .