利用Python实现对linux服务器SSH远程连接和系统操作的几种方式

在运维工作中,我们经常使用 ssh 工具远程登陆主机来执行命令,对系统进行维护。在python的自动化运维中,要执行系统命令,最方便的还是借助于 python 的 ssh 功能编写日常脚本,简化工作。下面我们说下这个工具。

概述

  • 功能:实现同时对多台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-server

service ssh restart

2).python最好选用2.7.x或者3.4.*或者3.6.*版本,然后使用pip安装相应的第三方模块/库 

pip install paramiko

pip 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

参考资料

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值