python paramiko 모듈 사용 방법

4341 단어 서버pythonparamiko
pythonparamiko paramiko 는 SSH 2 프로 토 콜 에 따라 암호 화 및 인증 방식 으로 원 격 서버 연결 을 지원 하 며 원 격 파일 업로드, 다운로드 또는 ssh 원 격 실행 명령 을 실현 할 수 있 습 니 다.항목 주소:https://github.com/paramiko/paramiko공식 문서:http://docs.paramiko.org/
설치 하 다
root@ubuntu:~/paramiko# pip install paramiko

설치 성공 여부 테스트
>>> import paramiko
>>>

2. 원 격 서버 에 파일 을 업로드 하 는 원리: SFTPClient 클래스 를 통 해 SSH 전송 프로 토 콜 의 sftp 세 션 에 따라 원 격 파일 업로드, 다운로드 등 을 실현 합 니 다.원 격 파일 업로드, 다운로드 실현.작업: 10. 1.101.187 에서 10.1.101.186 에 파일 을 보 냅 니 다.10.1.101.187 디 렉 터 리 / root / paramiko  세 개의 파일 이 있 습 니 다. paramikosend. py.  test  test. tar 10.1.101.186 디 렉 터 리 / root / paramiko   빈 폴 더 에 python paramikosend. py 를 실행 하기 시 작 했 습 니 다. 코드 는 다음 과 같 습 니 다.
root@ubuntu:~/paramiko# cat paramikosend.py 
import paramiko,datetime,os
hostname = '10.1.101.186'
username = 'root'
password = '123456'
port = 22
local_dir = '/root/paramiko'
remote_dir = '/root/paramiko'
try:
    t=paramiko.Transport((hostname,port))
    t.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    files = os.listdir(local_dir)        
    for f in files:
        sftp.put(os.path.join(local_dir,f),os.path.join(remote_dir,f))
    t.close()
except Exception:       
    print "connect error!"

결과: 3. 원 격 서버 에서 파일 을 다운로드 하 는 원리: SFTPClient 류 를 통 해 SSH 전송 프로 토 콜 의 sftp 세 션 에 따라 원 격 파일 업로드, 다운로드 등 을 실현 합 니 다.원 격 파일 업로드, 다운로드 실현.작업: 현재 10.1.101.186 의 / root / paramiko / temp 186 디 렉 터 리 에 두 개의 파일 이 있 습 니 다. 10.1.101.187 의 / root / paramiko / temp 187 디 렉 터 리 에 다운로드 합 니 다.집행 하 다. python paramikoget. py, 코드 는 다음 과 같 습 니 다.
root@ubuntu:~/paramiko# cat paramikoget.py 
import paramiko,datetime,os
hostname = '10.1.101.186'
username = 'root'
password = '123456'
port = 22
local_dir = '/root/paramiko/temp187'
remote_dir = '/root/paramiko/temp186'
try:
    t=paramiko.Transport((hostname,port))
    t.connect(username=username,password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    files = sftp.listdir(remote_dir) #      ,          sftp     
    for f in files:
        sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))
    t.close()
except Exception:        
    print "connect error!"

결과: 4. 명령 실행 테스트 원리: SSHClient 류 를 통 해 명령 을 수행 합 니 다.SSHClient 클래스 는 SSH 서비스 세 션 의 고급 표시 로 전송, 채널 및 SFTPClient 의 검사, 생 성 방법 을 봉인 하여 명령 을 수행 하 는 데 사 용 됩 니 다.작업: 10.1.101.187 을 통 해 10.1.101.186 에 연결 한 다음 디 렉 터 리 / root / paramiko 에 들 어가 디 렉 터 리 lxy 를 만 듭 니 다.python paramikocommand. py 를 실행 합 니 다. 코드 는 다음 과 같 습 니 다.
root@ubuntu:~/paramiko# cat paramikocommand.py 
#!/usr/bin/python
import paramiko
hostname = '10.1.101.186'
username = 'root'
password = '123456'
port = 22

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname,port=port,username=username,password=password)
stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir lxy")print stdout.readlines()
ssh.close()

결과: 명령 에 도 인자 가 있 을 수 있 습 니 다.
root@ubuntu:~/paramiko# cat paramikocommand.py 
#!/usr/bin/python
import paramiko
hostname = '10.1.101.186'
username = 'root'
password = '123456'
port = 22
name='testcmd'
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname,port=port,username=username,password=password)
stdin, stdout, stderr = ssh.exec_command("cd /root/paramiko;mkdir %s" %name)
print stdout.readlines()
ssh.close()

Note:exec_command 는 하나의 세 션 입 니 다. 실행 이 완료 되면 로그 인 할 때 부족 한 디 렉 터 리 로 돌아 갑 니 다.예 를 들 어 다음 두 마디 를 집행 한다.
stdin, stdout, stderr = ssh.exec_command("cd  /root/paramiko;mkdir %s" %name)
stdin,stdout,stderr = ssh.exec_command('mkdir haha')

haha 디 렉 터 리 는 결국 결 성 된 / root 디 렉 터 리 에서 새로 만 들 었 습 니 다. / root / paramiko 디 렉 터 리 가 아 닙 니 다.5. python 원 격 으로 작업 을 수행 하 는 다른 오픈 소스 모듈 fabric: fabric 는 paramiko 모듈 을 패키지 하여 ssh 를 실현 하여 파일 을 전송 합 니 다.pexpect: 사용자 가 지정 한 호스트 에 ssh 로그 인하 여 사용자 가 지정 한 명령 을 실행 할 수 있 습 니 다.
원본 주소:http://www.cnblogs.com/starof/p/4670433.html

좋은 웹페이지 즐겨찾기