문제

SSH를 통해 Linux 서버에서 명령을 실행하는 앱이 있습니다. Solaris 서버에 연결하면 상황이 작동하지 않습니다. Solaris 명령 줄은 267 자로 제한 된 것 같습니다.

이것을 바꿀 방법이 있습니까?

업데이트 : 이전에 지적한 바와 같이, 이것은 Solaris (SH) 대 Linux (Bash)의 기본 쉘에 대한 제한입니다. 이제 문제는 SH의 한계를 변경할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 당신이 연결하는 기본 쉘과 관련이 있다고 생각합니다. Linux에서 사용하는 동일한 쉘로 Solaris를 변경하면 문제가 해결됩니까?

솔루션에 대한 더 나은 경로가 있으면 의견을 제시하고 답변을 변경하겠습니다.

다른 팁

이 명령으로 현재 명령 길이 최대를 볼 수 있습니다.

$ getconf ARG_MAX
1048320

나는 할 수있는 스크립트를 만들었다 원격 명령의 최대 길이를 결정하십시오. Craig가 제안한 바와 같이, 가장 좋은 방법은 옵션 인 경우 명령을 표준으로 파이프하는 것입니다.

내가 알 수 있듯이, 당신의 선택은 다음과 같습니다.

  1. 사용자의 기본값을 변경하여 Solaris에서 사용하는 쉘을 변경하십시오.
  2. 쉘을 변경하지 말고 명령을 실행하는 방식을 변경하십시오.

첫 번째는 쉽지만 관리자는 모든 사용자/기계 조합을 변경해야하며 다른 프로그램에 영향을 줄 수 있습니다. 명령을 실행하는 방식을 변경하는 것은 장기적으로 더 빠르고 유지하기가 더 쉽습니다. 예를 들어, 다음을 실행해야한다고 가정합니다.

/usr/bin/foo with a very long list of options and parameters

지금은 아마도 다음과 같은 일을하고있을 것입니다.

ssh user@machine "/usr/bin/foo with a very long list of options and parameters"

그러나 대신 다음을 수행 할 수 있습니다.

echo "/usr/bin/foo with a very long list of options and parameters" | \
ssh user@machine "/bin/bash"

이것은 당신이 원하는 것을 할 것입니다.

Solaris 10에서 구성을 실행하고 구성 스크립트에 명령 줄의 길이에 대한 그림이 제공되면 답은 일반적으로 256kb 범위입니다. Solaris의 표준 쉘은 가장 확실히 300 바이트 미만의 제한이 없습니다.

즉, 당신의 문제가 무엇인지 잘 모르겠습니다. 한계가 짧은 Solaris SSH에 대한 추측을 위험에 빠뜨릴 수 있습니다. 문제가 발생하지는 않았지만 SSH를 긴 명령을 실행하기보다는 직접 (대화식으로) 연결하는 방법으로 사용하는 경향이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top