Python 설치에서는 명령줄 대화형 모듈 pexpect를 사용합니다.
Pexpect는 ssh, ftp, passwd, telnet 등과 같은 명령줄 명령과 상호 작용하는 데 사용할 수 있는 순수 Python 모듈입니다. 특히 Linux 시스템에서 사용하기 쉽습니다. 명령줄을 자세히 살펴보겠습니다. Python 설치용 기본 튜토리얼:
1. 설치
1. easy_install 도구 설치
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py는 easy_install 도구를 설치합니다(이 스크립트는 자동으로 공식 웹사이트로 이동하여 검색, 다운로드 및 설치합니다)
python ez_setup.py -U setuptools
easy_install 도구 업그레이드
2. pexpect 설치easy_install Pexpect
테스트해 보세요.
ok 설치가 완료되었습니다.
2. 기본 사용법
1.run() 함수
run 함수는 상대적으로 간단하며 간단한 상호작용만 가능합니다
코드는 다음과 같습니다.
run(command,timeout=-1,withexitstatus =False,events= None, extra_args=None, logfile=None, cwd=None, env=None)
예:
[root@OMS python]# python Python 2.7.3rc1 (default, Nov 7 2012, 15:03:45) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import pexpect >>> import pxssh >>>
spawn 함수는 다음과 같습니다. 실행보다 더 강력하고 더 복잡하게 구현될 수 있습니다. 상호 작용
pexpect.run('ls -la') # 返回值(输出,退出状态) (command_output, exitstatus) = pexpect.run('ls -l /bin', withexitstatus=1)
timeout은 상호 작용을 기다리는 시간 초과 값을 지정합니다.
maxread는 읽기를 설정합니다. pexpect가 TTY(Teletype 터미널)에서 읽으려고 할 때마다
searchwindowsize에서 읽은 최대 바이트 수는 입력 버퍼에서 패턴 일치 위치를 지정하며 기본값은 처음부터 일치하는 것입니다. ;
logfile 매개변수는 로그 기록 위치를 지정합니다.
작업 프로세스:class spawn __init__(self, command, args=[], timeout=30, maxread=2000, searchwindowsize=None, logfile=None, cwd=None, env=None)
pxssh는 pexpect의 파생 클래스입니다. SSH 연결을 설정하는 것이 예상보다 사용하기 쉽습니다.
login()은 대상 시스템에 대한 SSH 연결을 설정합니다.
prompt()는 일반적으로 명령 실행이 완료될 때까지 기다리는 데 사용됩니다.
3. 예시
원격 서버에 명령을 보내고 결과를 반환하는 스크립트를 작성하세요.
스크립트 내용:
# 第一步与终端建立连接 child = pexpect.spawn('scp foo user@example.com:.') # 第二步等待终端返回特定内容 child.expect('Password:') # 第三步根据返回内容发送命令进行交互 child.sendline(mypassword)
사용법:
#!/usr/bin/python #2013-01-16 by larry import pexpect def login(port,user,passwd,ip,command): child=pexpect.spawn('ssh -p%s %s@%s "%s"' %(port,user,ip,command)) o='' try: i=child.expect(['[Pp]assword:','continue connecting (yes/no)?']) if i == 0: child.sendline(passwd) elif i == 1: child.sendline('yes') else: pass except pexpect.EOF: child.close() else: o=child.read() child.expect(pexpect.EOF) child.close() return o hosts=file('hosts.list','r') for line in hosts.readlines(): host=line.strip("\n") if host: ip,port,user,passwd,commands= host.split(":") for command in commands.split(","): print "+++++++++++++++ %s run:%s ++++++++++++" % (ip,command), print login(port,user,passwd,ip,command) hosts.close()
Host.list 파일의 내용은 다음과 같습니다.
python scripts.py
반환 결과:
192.168.0.21:22999:root:123456:cat /etc/redhat-release,df -Th,whoami 192.168.0.21:22999:root:123456:cat /etc/redhat-release,df -Th,whoami
Python 설치 및 명령줄 대화형 모듈 pexpect 사용과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

파이썬에서 문자열을 통해 객체를 동적으로 생성하고 메소드를 호출하는 방법은 무엇입니까? 특히 구성 또는 실행 해야하는 경우 일반적인 프로그래밍 요구 사항입니다.

Uvicorn은 HTTP 요청을 어떻게 지속적으로 듣습니까? Uvicorn은 ASGI를 기반으로 한 가벼운 웹 서버입니다. 핵심 기능 중 하나는 HTTP 요청을 듣고 진행하는 것입니다 ...

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...
