일상적인 운영 및 유지 관리 작업에서는 일괄 호스트 호스트를 사용하는 것이 매우 일반적입니다. 시중에는 많은 호스트 일괄 관리 소프트웨어가 있지만 때로는 이러한 소프트웨어가 우리의 요구 사항을 완전히 충족할 수 없습니다. Python은 호스트 배치 관리를 위한 모듈을 제공합니다. 오늘은 Python을 사용하여 호스트 배치 관리를 수행하는 방법을 살펴보겠습니다.
Python은 주로 paramiko, fabric 및 pexpect의 세 가지 호스트 배치 관리 모듈을 제공합니다. 주로 타사 모듈인 paramiko 모듈에 대해 이야기합니다.
설치: pip install paramiko 또는 yum install python-paramiko. 두 설치 모두 실패하면 소스 코드를 사용하여 설치할 수 있습니다.
소스코드 패키지 다운로드 주소: https://github.com/paramiko/paramiko/archive/master.zip
공통작업:
ssh = paramiko.SSHClient() //인스턴스화 , ssh 세션 클래스
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) //첫 번째 연결에 대한 자동 응답은 yes입니다
ssh.connect('server ip', port, 'username ', 'password') / /서버에 연결
stdin,stdout,stderr = ssh.exec_command("command") //명령어를 실행하면 표준 출력, 명령이 성공적으로 반환됩니다. 실패하면 반환됩니다
ssh.close() / /연결 닫기
업로드, 다운로드:
get_put = paramiko.Transport((ip,port)) //서버 IP 및 포트(SFTP 사용 시 사용)
get_put .connect(username="root", 비밀번호="123.com") //서버에 연결, 사용자 이름 및 비밀번호
sftp = paramiko.SFTPClient.from_transport(get_put) //SFTP 프로토콜 사용
sftp.put(업로드할 파일, 업로드한 파일이 저장되는 위치) //업로드
sftp. get(다운로드한 파일의 위치, 다운로드가 저장된 위치) //Download
host 배치 관리:
#!/usr/bin/python
#-*- 코딩: utf-8 -*-
paramiko 가져오기
os 가져오기
def Connect(ip='127.0.0.1',Port=22,user ='root',pwd='123.com'):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh .connect(호스트 이름=ip, 포트=포트, 사용자 이름=user, 비밀번호=pwd) #서버에 연결
SSH 반환 | 🎜>
if len( __ip) == 2: ' s ' ‐ ‐ ‐ ‐ ‐ 1 ip_range = int(__ip[1]) #IP 검색 의 최대값 호스트_ip_split = ip_add.split('.') # . host_ip = int(host_ip_split.pop()) # 해당 IP의 최소값을 가져옵니다 ip_3 = '.'.join(host_ip_split)+' .' # 최소 IP 값을 제거한 나머지 부분을 다시 연결합니다 host_add_range = range(host_ip,ip_range+1) # 연결 IP 범위ADD_POOL = []
Host_ADD_RANGE의 I FOR:
ADD = IP_3+STR (i)# >
== 1: #입력이 단일 주소인 경우
valid_ip = __ip[0]
= valid_ip.split('.')[0:4] #감지 IP의 합법성 [ ip_value의 i에 대한 int(i) ] > Fa = True Fa: ip = raw_ 입력(' IP 주소 또는 주소 범위를 입력하세요: ') 제외_ip = raw_input('제외할 주소를 입력하세요: ' ') 시도: ip_list = IP_ADD(ip) # 사용자가 입력한 IP를 함수로 처리 if include_ip.strip(): Do you want 주소 풀에서 주소 제외Exclude_add = Exclude_ip.split (' ,') # 제외 형식 정의
[ip_list.remove (i) for I in Exclude_add] # >
Fa = False ~if stdout 사용:
위 내용은 Python을 사용하여 호스트 배치 관리 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!