python基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础相关的知识,希望对你有一定的参考价值。

一、paramiko模块

1.1 简介

      paramiko是一个自由和开放源码模块使用,实现SSH2协议安全(认证和加密)连接到远程计算机,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。

1.2 paramiko简单使用

1)SSHClient:

基于用户名和密码进行连接

import paramiko
#创建ssh对象
ssh = paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname=192.168.1.108,port=22,username=root,password=123456)
#执行命令
stdin,stdout,stderr = ssh.exec_command(df -h)
#获取命令结果
result = stdout.read().decode()
#打印结果
print(result)
#关闭连接
ssh.close()

显示结果:
文件系统       容量  已用  可用 已用%% 挂载点
/dev/sda3              18G   13G  4.3G  75% /
tmpfs                 495M  4.0K  495M   1% /dev/shm
/dev/sda1             190M   48M  133M  27% /boot

 

SSHClient封装Transport:

import paramiko
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,password=123456)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin,stdout,stderr = ssh.exec_command(free -m)
print(stdout.read().decode())
transport.close()

结果显示:
             total       used       free     shared    buffers     cached
Mem:           988        437        551          0         52         77
-/+ buffers/cache:        307        681
Swap:         2047          0       2047

 

基于公钥密钥连接:

import paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
#创建ssh对象
ssh = paramiko.SSHClient()
#允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接服务器
ssh.connect(hostname=192.168.1.108,port=22,username=root,pkey=private_key)
#执行命令
stdin,stdout,stderr = ssh.exec_command(df -h)
#获取命令结果
result = stdout.read().decode()
print(result)
#关闭连接
ssh.close()

显示结果:
文件系统       容量  已用  可用 已用%% 挂载点
/dev/sda3              18G   13G  4.3G  75% /
tmpfs                 495M  4.0K  495M   1% /dev/shm
/dev/sda1             190M   48M  133M  27% /boot

SSHClient封装transport:

import  paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,pkey=private_key)
ssh = paramiko.SSHClient()
ssh._transport = transport
stdin,stdout,stderr = ssh.exec_command(df -h)
print(stdout.read().decode())
transport.close()


2) SFTPClient

用于连接远程服务器并执行上传下载

import paramiko
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,password=123456)
sftp = paramiko.SFTPClient.from_transport(transport)
#本地的id_rsa文件上传至服务器/tmp/下面
sftp.put(C:\id_rsa,/tmp/id_rsa)
#将/tmp下面的nihao下载到本地的C:目录下
sftp.get(/tmp/nihao,C:\\nihao)
transport.close()

基于公钥密钥上传下载

import  paramiko
private_key = paramiko.RSAKey.from_private_key_file(C:\id_rsa)
transport = paramiko.Transport((192.168.1.108,22))
transport.connect(username=root,pkey=private_key)
sftp = paramiko.SFTPClient.from_transport(transport)
#本地的id_rsa文件上传至服务器/tmp/下面
sftp.put(C:\id_rsa,/tmp/id_rsa)
#将/tmp下面的nihao下载到本地的C:目录下
sftp.get(/tmp/nihao,C:\\nihao)
transport.close()

 

以上是关于python基础的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

python [代码片段]一些有趣的代码#sort

使用 Python 代码片段编写 LaTeX 文档

python 机器学习有用的代码片段