
짧은 형식:
scp
스위치 로 사용하는 대역폭을 제한할 수 있으며 -l
, kbits/sec 단위의 숫자를 전달합니다.
.ssh/config
나는 특정 이름의 컴퓨터에 대해 내 파일에 이것을 설정하고 싶습니다 .
에 해당하는 명명된 설정은 무엇입니까 -l
? 나는 그것을 찾을 수 없었다.
후속 질문:
일반적으로 ssh 명령줄 옵션과 구성 이름 사이를 앞뒤로 매핑하는 방법을 모르며 Google 검색을 수행하거나 사례별로 매뉴얼 페이지를 수동으로 비교하지 않습니다. 이 둘을 직접적으로 동일시하는 표가 있나요?
맥락이 포함된 긴 형태의 첫 번째 질문:
저는 SSH 구성을 꽤 많이 사용하기 시작했습니다. 특히 이제는 프록시를 거쳐 많은 포트 매핑을 수행해야 하기 때문입니다. 필요한 터널링 유형에 따라 동일한 시스템을 두 번 이상 정의하기도 합니다.
하지만 대용량 파일을 업로드할 때 내 컴퓨터에서는 다른 작업을 수행하기가 어렵습니다. 다운로드 대역폭이 최대보다 높음에도 불구하고 scp
링크가 포화되어 작은 요청도 인터넷에 도달할 수 없는 것 같습니다 .
-l
.NET용 대역폭 명령줄 스위치를 사용하여 이 문제를 해결할 수 있습니다 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