>

우리의 모든 스토리지 배열 (3par)에서 호스트 이름을 검색하는 쉘 스크립트를 작성 중입니다. 내 스크립트 (1)는 모든 장치에 연결하고 (2) 호스트 이름을 확인하는 명령을 실행하고 (3) 출력을 파일로 리디렉션합니다.

내 문제는 :

<올>
  • 화면에 호스트 이름을 출력하는 방법을 모르겠습니다
  • 호스트가 실행되는 컴퓨터에서 스크립트가 알려줄 수 없습니다.
  • 여기에 불완전한 스크립트가 있습니다. :)

    #!/bin/bash
    green=`tput setaf 2`
    nc=`tput sgr0`
    >/home/3par/tmp
    read -p "Enter the host: " hostname
    for ip in `cat /home/3par/pds |awk '{print $2}'`
    do
    ssh [email protected]$ip -i ~/.ssh/us3par_rsa 'showhost -d' >/home/3par/out
    echo "$ip `cat /home/3par/out`" >>/home/3par/tmp
    
    

    pds 텍스트 파일은 다음을 포함합니다 :

    us3par1 192.168.3.20
    us3par2 192.168.3.21
    us3par3 192.168.3.22
    
    

    원하는 결과는 다음과 같아야합니다. 호스트를 찾은 경우

    BTW, 저는 스크립팅 초보자 일 뿐이므로 도움, 의견, 제안을 부탁드립니다. :)

    • 답변 # 1

      문제를 올바르게 이해하면 다음 조정으로 문제를 해결해야합니다.

      #!/bin/bash
      read -p "Enter the host: " hostname
      while IFS=' ' read -r -a ip
      do
        foundhost="$(ssh [email protected]${ip[1]} -i ~/.ssh/us3par_rsa hostname 2> /dev/null)"
        if [ "$hostname" = "$foundhost" ]
        then
          echo "This host $hostname is on ${ip[0]}" | tee -a /home/3par/out
        fi
      done < pds
      
      

      가정 : pds는 공백 문자로 구분 된 두 개의 열이있는 (여러 줄) 텍스트 파일입니다.

      원하는 출력"이 호스트 us4c11j8a4는 us3par2에 있습니다"/home/3par/out 로 리디렉션됩니다.  (입력 한 호스트 이름을 찾을 수있는 경우).

      이 또한 도움이 될 수 있습니다 :

      쉘 : 원격 반향 호스트 이름 및 로컬로 쓰기

      bash 스크립트를 사용하여 원격 인스턴스의 호스트 이름을 가져 오는 방법?

    관련 자료

  • 이전 python - spacy를 이용한 의존성 파싱
  • 다음 swift - Cocoapods 설치 오류"종속성을 해결할 수 없습니다"