sftp put - rsync와 동일

sftp put - rsync와 동일

파이프가 끊어진 후 put진행 중인 파일 전송을 복구하는 명령을 사용하고 싶습니다 .sftp

대상 크기가 원본 파일보다 작은 경우에만 파일을 업로드해야 합니다.

ssh접근 권한이 없으므로 rsync선택 사항이 아닙니다.

로부터SFTP 매뉴얼, 플래그를 지정해 보았습니다 put -a -r source_dir/. 그러나 전송 중에 오류 메시지가 나타납니다.

  • 오류: Couldn't stat remote file: No such file or directory서버에 없는 파일의 경우
  • 오류: Destination file bigger or same size as source file이미 서버에 있는 파일이므로 올바르게 전송하면 안 됩니다.

첫 번째 오류의 실제 예:

Uploading of file /Volumes/Seagate/amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz to /deposits/Pacbio_amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz failed!
Couldn't stat remote file: No such file or directory

물론 파일은 소스 디렉터리에 존재합니다.

이에 대한 해결책이 있습니까?

답변1

이에 대한 해결책은 아니지만 해결 방법은 서버를 로컬로 마운트한 다음 간단히 데이터를 복사하는 것입니다.

sshfs원격 디렉토리를 마운트하는 데 사용할 수 있습니다.

sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/local_directory

그런 다음 사용

cp -ru

여기서 마운트된 원격 디렉토리에 있는 파일을 누락된 파일로 업데이트합니다.

답변2

ssh가장 좋은 해결책은 원격 시스템의 관리자에게 액세스 및 사용 권한을 요청 하거나 가능한 경우 rsync에만 액세스하는 것입니다.rsync

sftp파일을 넣고 가져올 수 있지만 디렉터리(내용이 포함된 디렉터리 트리)는 사용할 수 없습니다.

해결 방법은 다음과 같습니다.tarball [압축] tar 파일을 만들고 다음과 같이 넣으십시오.sftp.


tar -cvzf filename.tar.gz source_dir/

복원해야 하는 경우 sftp내용을 확인 하여 가져오세요.

tar -tvf filename.tar.gz

올바른 디렉토리에 있는지 확인하고 tarball에서 추출하십시오.

tar -xvf filename.tar.gz

답변3

-asftp 옵션을 사용하세요 . man sftp이는 sftp에 "파일의 기존 부분 또는 전체 복사본을 덮어쓰는 대신 중단된 전송을 계속하도록 시도합니다. 부분 내용이 전송 중인 내용과 다르면 결과 파일이 손상될 가능성이 높습니다.

관련 정보