약어:
scp
스위치에서 사용하는 대역폭을 제한할 수 있으며 -l
킬로비트/초 단위로 숫자를 전달할 수 있습니다.
차라리 특정 명명된 컴퓨터에 대해 내 파일에 설정하고 싶습니다 .ssh/config
.
에 해당하는 명명된 설정은 무엇입니까 -l
? 나는 그것을 찾을 수 없었다.
후속 질문:
일반적으로 ssh 명령줄 옵션과 구성 이름 사이를 앞뒤로 매핑하는 방법을 알 수 없으며 Google 검색을 수행하거나 사례별로 매뉴얼 페이지를 수동으로 비교할 수 있는 기능이 부족합니다. 이 둘을 직접적으로 동일시하는 표가 있나요?
맥락이 포함된 첫 번째 질문의 긴 형식:
저는 SSH 구성을 많이 사용하기 시작했습니다. 특히 이제는 프록시를 거쳐 많은 포트 매핑을 수행해야 하기 때문입니다. 필요한 터널 유형에 따라 동일한 시스템을 여러 번 정의하기도 했습니다.
하지만 대용량 파일을 업로드할 때 내 컴퓨터에서는 다른 작업을 수행하기가 어렵습니다. 업링크 대역폭보다 다운로드 대역폭이 더 많음에도 불구하고 이로 인해 scp
링크가 포화되어 작은 요청도 인터넷에 도달하지 못하는 것 같습니다.
-l
대역폭 명령줄 스위치를 사용하는 솔루션이 있습니다 scp
.
scp -l 1000 bigfile.zip titan:
내 구성에서 이것을 사용하고 싶기 때문에 "titan-upload"라는 이름의 추가 항목을 만들고 업로드할 때마다 이를 대상으로 사용하겠습니다.
그래서 대신:
scp bigfile.zip titan:
내가 말할 것:
scp bigfile.zip titan-upload:
또는 내 위치에 따라 다른 한도를 설정할 수도 있습니다.
scp bigfile.zip titan-upload-from-work:
vs.
scp bigfile.zip titan-upload-from-home:
저는 주로 Mac과 Linux를 사용합니다.
답변1
아쉽게도 앞서 언급했듯이 대역폭을 제한하는 구성 옵션이 없는 것 같습니다. (소스코드를 확인했어요!)
가능한 해결책은 scp의 별칭을 사용하거나 함수를 사용하는 것입니다. Bash는 일반적으로 Mac 및 Linux의 기본 셸이므로 다음과 같이 작동합니다.
alias scp='scp -l 1000 '
-or-
alias scp-throttle='scp -l 1000 '
(따옴표 안의 후행 공백에 유의하세요! 1 ) 결과는 다음과 같습니다.모든scp 명령은 대역폭을 제한하는 데 사용됩니다. 귀하의 상황을 고려할 때 전체적으로 가장 좋은 솔루션 일 수도 있습니다.
"정상" 전송에는 scp를 사용하고 느린 전송에는 scp-throttle을 사용할 수 있으므로 두 번째 방법이 좋은 선택일 수 있습니다.
또는 조금 더 많은 두뇌 능력이 필요한 기능:
function scp { if [ "$*" =~ "-upload" ]; then command scp -l 1000 "$@"; else command scp "$@"; fi; }
기본적으로 '-업로드' 인수의 어느 곳에서나 bw 제한을 사용하여 전송을 수행하고, 그렇지 않으면 정상적인 전송이 발생합니다.
이렇게 하면 계속해서 여러 이름/별칭을 사용하여 작업을 나타낼 수 있습니다.
scp aaa titan:
- 정상적으로 업로드 가능합니다.scp aaa titan-upload:
- 돈이 절약될 것이다scp titan:aaa .
- 정상scp titan-upload-from-home:aaa .
- 스로틀scp a-file-to-upload titan:
- 이런, 일부러가 아니라 제한을 걸었습니다!
편집하다:
1 - 별칭 내부의 후행 공백을 사용하면 별칭 명령 후에 별칭을 추가로 확장할 수 있습니다. 매우 도움이 됩니다/유용합니다.Bash Man Page, __ALIASES__ section