利用Python实现对linux服务器SSH远程连接和系统操作的几种方式
2018-02-26 16:09
766 查看
在运维工作中,我们经常使用 ssh 工具远程登陆主机来执行命令,对系统进行维护。在python的自动化运维中,要执行系统命令,最方便的还是借助于 python 的 ssh 功能编写日常脚本,简化工作。下面我们说下这个工具。
技术基础: python pexpect paramiko等模块,部支持windows。
参数:固定参数pwd:远程服务器密码,用户名目前写死是root,可自行修改。
可选参数-c CMDS:要执行的命令,比如:"ls -l","cd /home/test && test.py&如果不选择,会从当前目前的cmd.txt读取。
可选参数-s SERVERS:目标服务器,比如192.168.1.100,最后一位数可以用-表示一个区间,分号用于分割不同的ip。如果不选择,会从当前目前的ip.txt读取。
【前期方案思路准备】
跟ssh效果一样 那就python直接执行shell命令(若要在ssh登陆里面(会话),那只能用python调用shell脚本)
目前python还没有直接去操作linux的模块 需要登陆然后执行命令的 ssh、parameko和pexpect模块是同一个类型的
目前开源的用python写的批量管理linux服务器的工具有ansible或者saltstack等类似的
若以上功能还不满足需求等你python学到家了 你就自己写个模块 自己调用就可以定制作开发了
【系统环境准备】
试验系统类型:centos/Ubuntu,其他机器类型可以作参考
1). Linux系统首先要开启SSH服务:service ssh status如果没安装的话,则要:apt-get install openssh-serverservice ssh restart2).python最好选用2.7.x或者3.4.*或者3.6.*版本,然后使用pip安装相应的第三方模块/库 pip install paramikopip install pexpect
pip install pycrypto以centos7为例先安装必须的模块# yum install python-dev# yum install python-devel# pip install pycrypto# pip install paramiko# pip install ssh用python SSH模块登录,并在远程机执行shell命令
3).三种方案的简单介绍
Python直接调用SSH模块
利用paramiko模块实现登陆操作
Python中 pexpect 模块的pxssh 类(它用于处理一些自动化的需求,比如ssh和ftp)
更多脚本参考:https://www.cnblogs.com/kex1n/p/5988820.html
python实现ssh及sftp功能 - 爱笑的程序员 https://www.cnblogs.com/fang123456/p/7235688.html
Python SSH 的远程连接并执行命令和下载文件 -http://blog.csdn.net/syshzbtt/article/details/78069879
使用python远程操作linux服务器 http://blog.csdn.net/u010781856/article/details/47018413
用python SSH模块登录,并在远程机执行shell命令 http://blog.csdn.net/mingzznet/article/details/52912118
技术|用Python来SSH连接到你的机器 https://linux.cn/article-2090-1.html
库下载:https://pypi.python.org/pypi/pexpect/
概述
功能:实现同时对多台linux服务器通过ssh执行同一命令。技术基础: python pexpect paramiko等模块,部支持windows。
参数:固定参数pwd:远程服务器密码,用户名目前写死是root,可自行修改。
可选参数-c CMDS:要执行的命令,比如:"ls -l","cd /home/test && test.py&如果不选择,会从当前目前的cmd.txt读取。
可选参数-s SERVERS:目标服务器,比如192.168.1.100,最后一位数可以用-表示一个区间,分号用于分割不同的ip。如果不选择,会从当前目前的ip.txt读取。
【前期方案思路准备】
跟ssh效果一样 那就python直接执行shell命令(若要在ssh登陆里面(会话),那只能用python调用shell脚本)
目前python还没有直接去操作linux的模块 需要登陆然后执行命令的 ssh、parameko和pexpect模块是同一个类型的
目前开源的用python写的批量管理linux服务器的工具有ansible或者saltstack等类似的
若以上功能还不满足需求等你python学到家了 你就自己写个模块 自己调用就可以定制作开发了
【系统环境准备】
试验系统类型:centos/Ubuntu,其他机器类型可以作参考
1). Linux系统首先要开启SSH服务:service ssh status如果没安装的话,则要:apt-get install openssh-serverservice ssh restart2).python最好选用2.7.x或者3.4.*或者3.6.*版本,然后使用pip安装相应的第三方模块/库 pip install paramikopip install pexpect
pip install pycrypto以centos7为例先安装必须的模块# yum install python-dev# yum install python-devel# pip install pycrypto# pip install paramiko# pip install ssh用python SSH模块登录,并在远程机执行shell命令
3).三种方案的简单介绍
Python直接调用SSH模块
利用paramiko模块实现登陆操作
Python中 pexpect 模块的pxssh 类(它用于处理一些自动化的需求,比如ssh和ftp)
更多脚本参考:https://www.cnblogs.com/kex1n/p/5988820.html
python实现ssh及sftp功能 - 爱笑的程序员 https://www.cnblogs.com/fang123456/p/7235688.html
Python SSH 的远程连接并执行命令和下载文件 -http://blog.csdn.net/syshzbtt/article/details/78069879
使用python远程操作linux服务器 http://blog.csdn.net/u010781856/article/details/47018413
用python SSH模块登录,并在远程机执行shell命令 http://blog.csdn.net/mingzznet/article/details/52912118
技术|用Python来SSH连接到你的机器 https://linux.cn/article-2090-1.html
参考资料
英文文档主页:http://pexpect.readthedocs.org/en/latest/库下载:https://pypi.python.org/pypi/pexpect/
相关文章推荐
- Python之Fabric模块 Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:
- 利用python 更新ssh 远程代码 操作远程服务器的实现代码
- Java利用ssh协议实现从远程Linux服务器下载文件和文件夹
- java利用Jsch实现在windows平台远程操作linux服务器
- 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术
- 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术
- python 使用ssh连接服务器进行远程命令行操作
- 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术
- python下paramiko模块实现ssh连接登录Linux服务器
- python利用MySQLdb模块进行数据库的连接实现增查操作
- [置顶] 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术
- 利用python实现ftp和远程操作linux
- 利用SSH Filesystem实现远程文件系统
- python 使用ssh连接服务器进行远程命令行操作
- 利用JSCH实现远程操作Linux系统和hadoop集群
- 利用ssh与局域网内主机建立远程连接实现局域网穿透
- python下paramiko模块实现ssh连接登录Linux服务器
- python利用wxpython实现ssh连接linux进展
- 利用python 更新ssh 远程代码 操作远程服务器