이 경우 scp 명령은 응답 코드 > 0을 반환했지만 파일이 성공적으로 복사되어 결국 데이터베이스에 로드되었으므로 파일이 손상되지 않았음을 의미합니다.
Unix SCP 명령은 응답 코드 > 0에도 불구하고 계속 파일을 복사합니까? resp > 0이면 파일이 손상되거나 전혀 전송되지 않습니까? resp > 0은 복제가 중지되고 파일이 복사되지 않았음을 의미할 것으로 예상했습니다.
사용된 코드:
scp -r [!.]* [email protected]:/home/user/DATA_* /app/data
if (($? > 0)); then touch conn_error_172_0_0_1.bad; fi
이 매뉴얼에 따르면 응답 코드 > 0은 오류입니다.http://support.microfocus.com/kb/doc.php?id=7021696–
답변1
Unix SCP 명령은 응답 코드 > 0에도 불구하고 파일을 계속 복사합니까?
이 질문은 의미가 없습니다. scp
해당 코드는 수행 중이던 모든 작업이 완료된 후에만 해당 코드를 반환합니다. 따라서 반환 코드를 받으면 scp
작업이 완료된 것입니다. 그 후에는 아무 일도 일어나지 않았습니다. 아무 것도 진행할 scp가 없습니다!
scp
오류(및 오류가 발생한 시점)에 따라 모든 파일, 모든 파일 또는 일부 파일만 복사할 수 있습니다 .
원자 복사본이 필요한 경우 rsync
옵션을 --delay-updates
대신 사용하십시오 scp
.
답변2
주 문서 scp
,
유틸리티는 성공 시
scp
0을 종료 하고 오류가 발생하면 >0을 종료합니다.
이는 특별히 정확하지 않으므로 실험을 시도해야 합니다.
scp remoteHost:/etc/no_such_file /tmp; echo SS=$? # "SS=1"
scp remoteHost:/etc/hosts /tmp; echo SS=$? # "SS=0"
scp no_such_host:/etc/hosts /tmp; echo SS=$? # "SS=255"
이제 조합을 살펴보겠습니다.
scp remoteHost:/etc/no_such_file remoteHost:/etc/hosts /tmp; echo SS=$? # "SS=1"
종료 상태가 0이 아니더라도 파일은 /etc/hosts
성공적으로 복사되었습니다. 일부 파일은 복사되고 다른 파일은 복사되지 않는 귀하의 경우인 것 같습니다.
각 경우의 종료 상태는 사용 여부 -O
( scp
새 기본 프로토콜 대신 강제 프로토콜)와 관계없이 동일합니다.sftp
내가 내린 결론은 문서의 결론입니다. 종료 상태가 0이 아니면 어떤 종류의 오류가 발생하고, 종료 상태가 0이면 어떤 전송에서도 오류가 발생하지 않습니다.