SSH로 시작한 다운로드를 로컬 파일로 저장하기
프록시를 통한 로컬 다운로드와 원격에서 가져온 뒤 전송하는 방식 중에서 고르고, 명령 출력과 파일 바이트를 분리해 두십시오.
SSH로 다운로더를 실행하는 것과 원격 프록시로 로컬 다운로더를 실행하는 것은 다운로드를 서로 다른 곳에 둡니다:
| 구성 | 웹사이트를 누가 가져오는가 | 파일이 기록되는 위치 |
|---|---|---|
| 원격 프록시를 통한 로컬 다운로더 | 로컬 HTTP 클라이언트가 요청을 소유하고, 프록시가 그것을 전달합니다 | 로컬 다운로더의 출력 경로 |
| SSH로 시작한 다운로더 | 원격 머신의 프로그램 | 데이터를 명시적으로 가져오지 않는 한 그 원격 경로 |
권한이 있는 SSH 계정과 원격에 설치된 curl이 있으면 산출물을 표준 출력으로 가져올 수 있습니다:
ssh -T [email protected] 'curl --fail --silent --show-error https://downloads.example/file.bin' > file.part예시 계정과 URL을 바꾸십시오. 리다이렉션은 인용된 원격 명령 밖에 있으므로 로컬 셸이 file.part 파일을 엽니다. 원격 명령 안에 두면 경로는 원격 환경의 것이 됩니다.
새 임시 경로를 사용하십시오. 원격 작업이 성공하기 전에 로컬 셸이 그 파일을 만들거나 잘라낼 수 있습니다. 최종 이름을 붙이기 전에 SSH 종료 결과와 산출물을 확인하십시오.
표준 출력에는 산출물의 바이트만 있어야 합니다. 인사말, 진행 표시줄, 래퍼 메시지는 그것을 손상시킬 수 있습니다. 진단 정보는 표준 오류로 가야 합니다. 자기 파일 이름에 저장하는 원격 명령은 바이트를 전혀 돌려보내지 않을 수 있습니다. 어떤 래퍼를 거치더라도 다운로더의 종료 결과를 보존하십시오.
대신 원격에 저장하고 SFTP로 파일을 전송할 수 있습니다. SSH가 이미 프록시 도우미를 쓴다면 그 SSH 호스트 항목을 전송에 다시 사용하십시오. 목표가 로컬 프록시 작업 흐름이라면 다운로더를 로컬에 두고 지원되는 프록시 인터페이스를 설정하십시오.
어느 쪽이든 노트북에 도달해야 하는 파일은 여전히 그 네트워크 연결을 지나야 합니다. 선택은 웹사이트를 향하는 연결과 다운로드를 수행하는 프로세스를 바꿉니다.