파이프가 손상된 후 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
-a
sftp 옵션을 사용하십시오 . man sftp
이는 sftp에 "파일의 기존 부분 또는 전체 복사본을 덮어쓰는 대신 중단된 전송을 계속하도록 시도합니다. 부분 내용이 전송 중인 내용과 다르면 결과 파일이 손상될 수 있습니다."라고 지시합니다.