AWS에서 실행되는 서버가 100개 있습니다. 원격 시스템의 각 사용자가 사용하는 데이터의 양을 쉽게 확인하고 이를 텍스트 파일로 출력해야 합니다. 어떻게 하면 이 작업을 가장 잘 수행할 수 있습니까?
답변1
다음과 같은 병렬 쉘을 사용할 수 있습니다.클러스터 쉘또는PDSH.
이렇게 하면 중앙 시스템에서 비밀번호 없는 SSH 인증을 설정했다고 가정하고 동시에 100개의 서버 각각에서 명령을 실행할 수 있습니다. 한 단계 더 나아가 다양한 그룹을 만들어 논리적으로 구성할 수도 있습니다.
컴퓨터 이름이 aws0, aws1, aws2, ... aws99라고 가정해 보겠습니다.
Clustershell을 사용하면 다음을 통해 이러한 모든 장치(이 예에서는 가동 시간)에서 명령을 실행할 수 있습니다.
# clush -w aws[0-100] uptime
aws0: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws1: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws2: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws99: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
이 방법으로 하위 집합에 대해 명령을 실행할 수 있습니다.
clush -w aws[22-55,73-82,90,99] uptime
aws22: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws23: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws55: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws73: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
[...]
aws82: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws90: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
aws99: 21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00
그런 다음 동일한 결과를 그룹화하려면 clush의 -b 옵션을 사용하거나 pdsh 파이프라인 dshbak -c를 사용할 수 있습니다.
# clush -bw aws[0-99] uptime
---------------
aws[0-99] (100)
---------------
21:49:12 up 5:46, 1 user, load average: 0.07, 0.02, 0.00