paramiko

大技霸教你远程执行Linux脚本和命令

时光总嘲笑我的痴心妄想 提交于 2020-08-14 13:56:45
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。 对于 paramiko 安装直接 pip 或者 PyCharm 这里就不多说了,如果看到这里你觉得自己不怎么了解python语法的也不必担心,你完全可以用 paramiko 单纯的执行 Shell 命令查看结果和上传下载文件,省去重复的工作。 paramiko 实现了 SSHv2 协议(底层使用 cryptography ),包含两个核心组件:SSHClient 和 SFTPClient 。 SSHClient 是对 SSH 会话的封装,用于执行远程命令,SFTPClient 是对 SFTP 客户端的封装,用以实现远程文件操作。 这里先举两个列子你应该就明白怎么用了,终于开始正片了。 SSHClient 的列子: # -*- coding: utf-8 -*- import paramiko client = paramiko.SSHClient()# 实例化SSHClient client.set

使用python脚本部署mariadb主从架构

元气小坏坏 提交于 2020-08-13 14:54:22
环境准备 一个脚本自动部署master服务 另一个部署slave服务 关闭主从节点的防火墙 以及事先设置好root远程登陆的权限。 grant all on *.* to root@'%' identified by 'root' ; master import paramiko ssh = paramiko . SSHClient () ssh . set_missing_host_key_policy ( paramiko . AutoAddPolicy ()) ssh . connect ( hostname = '192.168.253.168' , port = 22 , username = 'root' , password = 'root' ) a = "sed -i -e '12aserver_id=1' -e '13alog_bin=mysql_bin' /etc/my.cnf.d/server.cnf" b = 'systemctl restart mariadb' c = '''mysql -uroot -proot -e "grant replication slave on *.* to 'slave'@'%' identified by 'slave'"''' d = '''mysql -uroot -proot -e "show master

Python自动化运维:技术与最佳实践 PDF高清完整版|网盘下载内附地址提取码|

夙愿已清 提交于 2020-08-11 21:00:38
内容简介: 《Python自动化运维:技术与最佳实践》一书在中国运维领域将有“划时代”的重要意义:一方面,这是国内第一本从纵、深和实践角度探讨Python在运维领域应用的著作;一方面本书的作者是中国运维领域的“偶像级”人物,本书是他在天涯社区和腾讯近10年工作经验的结晶。因为作者实战经验丰富,所以能高屋建瓴、直指痛处,围绕Python自动化运维这个主题,不仅详细介绍了系统基础信息、服务监控、数据报表、系统安全等基础模块,而且深入讲解了自动化操作、系统管理、配置管理、集群管理及大数据应用等高级功能。最重要的是,完整重现了4个来自实际生产环境的不同功能运维平台的综合案例,展示了完整的平台架构及开发流程。 全书一共16章:基础篇(1-4章)详细介绍了系统基础信息、业务服务监控、定制业务质量报表、系统安全等基础和常用模块;高级篇(5-12章)深入讲解了批量运维管理器pexpect、paramiko、Fabric,集中化管理平台Ansible、Saltstack,统一网络控制器Func等高级功能,涵盖自动化操作、系统管理、配置管理、集群管理及大数据应用等主题;案例篇(13-16章)详细介绍了4个来自不同平台的运维案例,如何从零开始打造一个B/S自动化运维平台、如何打造Linux系统安全审计功能、如何构建分布式质量监控平台、如何构建桌面版C/S自动化运维平台,这4个案例均来自实际生产环境。

大技霸教你远程执行Linux脚本和命令

天涯浪子 提交于 2020-08-09 15:53:07
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。 对于 paramiko 安装直接 pip 或者 PyCharm 这里就不多说了,如果看到这里你觉得自己不怎么了解python语法的也不必担心,你完全可以用 paramiko 单纯的执行 Shell 命令查看结果和上传下载文件,省去重复的工作。 paramiko 实现了 SSHv2 协议(底层使用 cryptography ),包含两个核心组件:SSHClient 和 SFTPClient 。 SSHClient 是对 SSH 会话的封装,用于执行远程命令,SFTPClient 是对 SFTP 客户端的封装,用以实现远程文件操作。 这里先举两个列子你应该就明白怎么用了,终于开始正片了。 SSHClient 的列子: # -*- coding: utf-8 -*- import paramiko client = paramiko.SSHClient()# 实例化SSHClient client.set

大技霸教你远程执行Linux脚本和命令

不打扰是莪最后的温柔 提交于 2020-08-07 21:09:17
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复命令。所以俺寻思可以有个方法本地直接在服务器端执行脚本,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。 对于 paramiko 安装直接 pip 或者 PyCharm 这里就不多说了,如果看到这里你觉得自己不怎么了解python语法的也不必担心,你完全可以用 paramiko 单纯的执行 Shell 命令查看结果和上传下载文件,省去重复的工作。 paramiko 实现了 SSHv2 协议(底层使用 cryptography ),包含两个核心组件:SSHClient 和 SFTPClient 。 SSHClient 是对 SSH 会话的封装,用于执行远程命令,SFTPClient 是对 SFTP 客户端的封装,用以实现远程文件操作。 这里先举两个列子你应该就明白怎么用了,终于开始正片了。 SSHClient 的列子: # -*- coding: utf-8 -*- import paramiko client = paramiko.SSHClient()# 实例化SSHClient client.set

Django实现环境实时监控功能

前提是你 提交于 2020-08-07 08:07:23
效果预览 服务端方法getEnvinfo接口开发 1.依赖包安装(ssh协议工具包) pip install paramiko 2.主机配置 host = {'ip': ip, 'port': port, 'username': username, 'password': password} 3.远程执行命令并获取返回结果 #打开ssh客户端 ssh = paramiko.SSHClient() # 设置为接受不在known_hosts 列表的主机可以进行ssh连接 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=host['ip'], port=host['port'], username=host['username'], password=host['password']) #获取内存信息 stdin, stdout, stderr = ssh.exec_command('sudo free -m|grep Mem') str_out = stdout.read().decode() totalmem = str(str_out).split(" ")[1].replace(" ","") freemem = str(str_out).split(" ")[2]

python连接linux

人走茶凉 提交于 2020-08-06 10:41:40
''' 请使用 python 连接你的虚拟机,完成以下操作(定义到类和函数中): 1. 在当前 python 项目目录下创建 work 目录,并在其中创建同名文本文档 work.txt ,在 txt 文件中写入 当前日期的月和日即可 2. 连接虚拟机,将刚才写好的 work.txt 上传到虚拟机 /home/ 目录下,同时将本地的 work.txt 删除。 3. 将 Linux 上 etc 目录下的 passwd,shadow,group 三个文件使用 tar 命令进行打包,包名为 work.txt 中 的内容加上文件的首字母,例如: 0725p.tar.gz , 0725s.tar.gz , 0725g.tar.gz ,将压缩后的三个 文件下载到本地 work 目录 ''' import paramiko import os import datetime import shutil class Client ( object ): def __init__ ( self , ip, port, user, password, workpath, linuxpath): self .ip = ip self .port = port self .user = user self .password = password self .workpath = workpath self

怎样远程执行Linux脚本和命令

允我心安 提交于 2020-08-06 03:02:47
如果现在需要在 Linux 服务器上执行一系列 命令 (比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本 ,然后扔上去执行以下看看结果。 然而一贯懒惰的我并不想这么去执行 Shell 和一些重复 命令 。所以俺寻思可以有个方法本地直接在服务器端执行 脚本 ,寻思生异端,这时候有某大技霸告诉我有个叫 paramiko 的 Python 库,从此开启我新世界的大门。 对于 paramiko 安装直接 pip 或者 PyCharm 这里就不多说了,如果看到这里你觉得自己不怎么了解python语法的也不必担心,你完全可以用 paramiko 单纯的执行 Shell 命令查看结果和上传下载文件,省去重复的工作。 paramiko 实现了 SSHv2 协议(底层使用 cryptography ),包含两个核心组件:SSHClient 和 SFTPClient 。 SSHClient 是对 SSH 会话的封装,用于执行远程命令,SFTPClient 是对 SFTP 客户端的封装,用以实现远程文件操作。 这里先举两个列子你应该就明白怎么用了,终于开始正片了。 SSHClient 的列子 # -*- coding: utf-8 -*- import paramiko client = paramiko.SSHClient()# 实例化SSHClient client.set

paramiko.SSHException: Unknown private key cipher "AES-128-CBC"

半腔热情 提交于 2020-08-05 18:23:36
原文:http://jianshu.io/p/7Mm9Wk 今天使用paramiko解析DSA密钥时出现如下ERROR: ... ...paramiko.SSHException: Unknown private key cipher "AES-128-CBC" DSA密钥内容如下: -----BEGIN DSA PRIVATE KEY-----Proc-Type: 4,ENCRYPTEDDEK-Info: AES-128-CBC,381624AF862F1717C46EF898D9E1FA92... ...OCGYNLsO68FToi8qJEP1DI9Jvk6tpU3y4ebBqSZnX7jr1M5+Hj5rfMqv7+kp3T4R314ae9Ism9AXLIK2miTAcvbexZpbcesadqvo69DMsfhSmKKJYABK3eRYaDlUwkzN... ...-----END DSA PRIVATE KEY----- 使用 ssh-keygen -t rsa 测试没有问题,后来得知之前的DSA密钥时使用Secure CRT生成的,查了相关AES算法加密,发现paramiko默认并不支持AES算法,所以出现之前的 Unknown Error 错误。后来借助Google找到了相关的答案, Unknown private key cipher AES-128-CBC

Combining interactive shell and recv_exit_status method using Paramiko

牧云@^-^@ 提交于 2020-08-05 09:52:29
问题 I am using paramiko for SSH with my remote devices. and I am make communication with them using paramiko shell ( invoke_shell() method) for interactivity. The main problem with paramiko shell (as I've read in many answers here) is that there is no guarantee that paramiko SSHClient methods which indicates that the server finished writing such as recv_exit_status() and exit_status_ready() will behave as expected. So I created mechanism that will read the last line of the output from the shell