상자에 javadoc 트리가 포함된 jar 파일이 있습니다. 나는 그것을 다른 상자로 옮기고 특정 디렉토리(존재하지 않을 수도 있음)에 항아리를 추출해야 합니다.
원격 상자에 로그인하는 데 사용하려는 주체의 사용자 이름/비밀번호가 있지만 사용할 SSH 키가 없습니다.
예상을 사용하여 이 작업을 수행할 수 있지만, 컬을 사용하여 완전히 수행할 수 있는지 확인하고 싶습니다. 다음과 같은 명령을 사용하여 jar 파일을 원격 상자로 성공적으로 전송했습니다.
curl -k -T file.jar -u user:password scp://host/path/file.jar
요구 사항 중 더 어려운 부분은 항아리의 포장을 풀거나 stdout을 통해 소스에서 파이프를 통해 원격으로 압축을 푸는 것입니다. 이를 위해 다음을 시도했습니다.
gzip -c file.jar | curl -k -T - -u user:password scp://host/path/stuff
이 작업은 "curl: (25) SCP에 업로드하려면 알려진 파일 크기가 필요합니다."와 함께 실패합니다.
이 모든 것이 작동하도록 하려면 완전한 "예측" 구현을 수행해야 합니까? 나는 컬이 존재하지 않는 경우 대상 디렉토리를 생성할 수 있는지 여부조차 고려하지 않았습니다.
답변1
나는 똑같은 문제를 경험했습니다. 정확한 이유는 모르지만 scp를 통한 컬은 전체 파일만 복사할 수 있으며 크기를 알고 있습니다. scp 자체의 제한일 수도 있습니다.
해결책은 매우 간단합니다. 프로토콜을 scp에서 sftp로 변경하면 제대로 작동합니다.
gzip -c file.jar | curl -k -T - -u user:password sftp://host/path/stuff