완료된 업로드를 다른 폴더로 이동하는 동안 SFTP로 rsync

완료된 업로드를 다른 폴더로 이동하는 동안 SFTP로 rsync

대용량 데이터(30GB)를 서버로 옮기고 있는데, 이 서버는 여러 개의 200MB tar.gz 파일로 분할되어 있습니다. 이 작업에는 시간이 걸리며 프로세스 중에 컴퓨터를 중지했다가 다시 시작해야 하므로 전송이 중단됩니다.

내가하고 싶은 일은 다음과 같습니다.

find . -maxdepth 1 -type f -iname "*.tar.gz.*" | while read file ; do
    scp "$file" username@host:/backup/
    mv "$file" "already-done/"
done

불행히도 SSH 키는 내가 제어할 수 없는 비표준 설정이기 때문에 이 상자에 복사할 수 없습니다. 따라서 연결을 만들 때마다 수동으로 암호를 입력해야 하므로 위의 while 루프가 비생산적입니다. rsync를 사용하여 단일 영구 SSH 연결을 통해 이 서버에 파일을 복사하는 동시에 완료된 백업을 다른 디렉터리로 이동하여 새로 부팅할 때 다시 복사하지 않도록 할 수 있는 방법이 있습니까?

답변1

두 가지 제안이 있습니다.

  1. scp에 대한 호출을 이러한 상황을 처리하도록 설계된 rsync에 대한 호출로 바꾸십시오.
  2. while 루프를 사용할 필요가 없습니다. glob을 사용하여 파일을 직접 호출하면 됩니다. find 명령은 최대 깊이 1을 사용하므로 rsync -t *.tar.gz.* username@host:/backup/Rsync는 복사된 파일, 복사되지 않은 파일 및 해당 파일의 정확성을 확인합니다. 연결을 통해 변경 사항을 전송합니다.

관련 정보