셸 스 크 립 트 대량 배치 ssh 인증 + 대량 실행 명령

일상적인 운영 과정 에서 수 십 수백 대의 서버 에 소프트웨어 를 대량으로 배치 하거나 서버 를 다시 시작 하 는 등 조작 을 해 야 한다. 이렇게 반복 적 인 작업 은 반드시 고민 할 것 이다. 본 고 는 여러분 에 게 가장 기본 적 인 대량 조작 방법 을 제공 했다. 비록 효율 이 높 지 않 지만 초보 자 에 게 는 이해 하기 쉽다.스 크 립 트 를 처음 배 웠 기 때문에 어떤 puppt 같은 고급 도 구 를 사용 하지 않 고 셸 스 크 립 트, ssh - keygen, expect 를 간단하게 이용 하여 이 루어 집 니 다.여러분 에 게 도움 이 되 었 으 면 좋 겠 습 니 다. 부족 한 점 은 댓 글로 지적 해 주세요. 모두 함께 발전 하 세 요.
    우선, expect 설치 여 부 를 확인 해 야 합 니 다: rpm - qa | grep expect
    그 다음 에 조작 기 에 공개 키 를 만 듭 니 다. ssh - keygen 은 차 로 돌아 가면 됩 니 다.
    만 든 후/root/. ssh/아래 에서 id 로 시작 하 는 2 개의 파일 을 볼 수 있 습 니 다. 그 중 idrsa. pub 는 공개 키 파일 입 니 다. 해 야 할 일 은 이 파일 을 다른 기계 에 전송 하 는 것 입 니 다: ssh - copy - id - i/root/. ssh/idrsa.pub root@ip
    마지막 sshroot@ip비밀번호 없 는 로그 인 이 되 었 습 니 다.
다음은 스 크 립 트 입 니 다. 자신의 실제 상황 에 따라 수정 합 니 다.
   
   
   
   
  1. #!/bin/bash  
  2. #2013-04-08   
  3. #author myhoop  
  4. #blog http://myhoop.blog.51cto.com   
  5.  
  6. # ssh  
  7.  
  8. for p in $(cat /usr2/script/ip.txt)  # ip.txt  
  9. do   
  10. ip=$(echo "$p"|cut -f1 -d":")       # ip.txt ip  
  11. password=$(echo "$p"|cut -f2 -d":") # ip.txt  
  12.  
  13. #expect  
  14. expect -c "   
  15. spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$ip  
  16.         expect {   
  17.                 \"*yes/no*\" {send \"yes\r\"; exp_continue}   
  18.                 \"*password*\" {send \"$password\r\"; exp_continue}   
  19.                 \"*Password*\" {send \"$password\r\";}   
  20.         }   
  21. "   
  22. done   
  23.  
  24. # ssh  
  25.  
  26. for h in $(cat /usr2/script/ip.txt|cut -f1 -d":")  
  27. do  
  28. ssh root@$h ' '    
  29. # ,  
  30. #ssh root@$h ' 1' 
  31. #ssh root@$h ' 2' 
  32. #ssh root@$h ' 3' 
  33. done  
  34.  
  35.  
  36. #ip.txt ip  
  37. 192.168.0.2:admin2  
  38. 192.168.0.3:admin3 

좋은 웹페이지 즐겨찾기