首页 > 代码库 > Python_oldboy_自动化运维之路_paramiko,mysql(十二)

Python_oldboy_自动化运维之路_paramiko,mysql(十二)

本节内容:

  1. paramiko
  2. mysql

1.paramiko

http://www.cnblogs.com/wupeiqi/articles/5095821.html

paramiko是一个模块,socket和ssh协议,利用这个模块就可以用python代码实现远程服务器操作

ansible底层就是用的这个模块

功能:

  a.使用用户名密码:命令,文件

  b.使用用户名秘钥:命令,文件

  c.执行创建session

1.基于用户名密码连接:

技术分享
import paramiko
  
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname=c1.salt.com, port=22, username=wupeiqi, password=123)
  
# 执行命令
stdin, stdout, stderr = ssh.exec_command(df)
# 获取命令结果
result = stdout.read()
  
# 关闭连接
ssh.close()
paramiko
技术分享
banaconda-ks.cfg\ninstall.log\ninstall.log.syslog\npackage\n\xe5\x85\xac\xe5\x85\xb1\xe7\x9a\x84\n\xe6\xa8\xa1\xe6\x9d\xbf\n\xe8\xa7\x86\xe9\xa2\x91\n\xe5\x9b\xbe\xe7\x89\x87\n\xe6\x96\x87\xe6\xa1\xa3\n\xe4\xb8\x8b\xe8\xbd\xbd\n\xe9\x9f\xb3\xe4\xb9\x90\n\xe6\xa1\x8c\xe9\x9d\xa2\n
输出

假如利用普通用户登录

技术分享
# -*- coding: UTF-8 -*-
#blog:http://www.cnblogs.com/linux-chenyang/
import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname=10.236.62.37, port=22, username=root, password=123456)

# 执行命令
stdin, stdout, stderr = ssh.exec_command(sudo ls)
stdin.write(123456)
stdin.flush()
# 获取命令结果
result = stdout.read()
print(str(result))

# 关闭连接
ssh.close()
paramiko

2.基于用户名秘钥连接

技术分享
import paramiko
 
private_key = paramiko.RSAKey.from_private_key_file(/home/auto/.ssh/id_rsa)
 
# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname=c1.salt.com, port=22, username=wupeiqi, key=private_key)
 
# 执行命令
stdin, stdout, stderr = ssh.exec_command(df)
# 获取命令结果
result = stdout.read()
 
# 关闭连接
ssh.close()
paramiko

 

Python_oldboy_自动化运维之路_paramiko,mysql(十二)