使用Python 远程管理 Linux 系统

  • Linux 系统的 远程操作
    • Linux 连接
    • Linux 与 Windows 文件 传输
      • 一、 Windows to Linux:
      • 二、 Linux come back Windows:
    • Linux 远程 操作:
      • 一、SSH 的 连接方式:
      • 二、session 的 连接方式:
    • 总结:
      • Linux 常用命令:

Linux 系统的 远程操作

   在平时的工作中使用到的一个 Python 小功能;因为在开发代码后需要将代码远程部署到 Linux 系统;代码数量过多,并且有多台新的远程机器需要操作,因此想到的 使用 Python 代码 进行自动远程部署代码,并且对使用环境进行检测是否缺少 某些 Python 的 第三方包。

使用的包:paramiko

Linux 连接

# host:ip 地址;
# port:开放的 ssh 端口;  (一般 默认为 22)
# userName:用户名
# password:连接密码# ftp 连接方式        可以用于 传输文件使用
transport = paramiko.Transport(sock=(host, port))
transport.connect(username=userName, password=password)
ftp = paramiko.SFTPClient.from_transport(transport)            # 实例session = transport.open_session()# ssh 连接方式
ssh = paramiko.SSHClient()
ssh._transport = self.transport
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host, username=userName, password=password, port=port)session.get_pty()
session.invoke_shell()

以上的 两种 连接方式具备不同的 性质和功能;需要根据不同的应用方式进行选择;

Linux 与 Windows 文件 传输

一、 Windows to Linux:

将本地的 文件 上传到 Linux 系统

# 使用 上述 提到的 ftp 连接方式
sftp = ftp
# localpath  为本地文件的绝对路径。如:D:\test.py
# remotepath 为服务器端存放上传文件的绝对路径,而不是一个目录。如:/tmp/my_file.txtsftp.put(localpath, remotepath)      # 上传 文件 指令

二、 Linux come back Windows:

将 Linux 系统的 文件 下载到本地

# 使用 上述 提到的 ftp 连接方式
sftp = ftp
# localpath  为本地文件的绝对路径。如:D:\test.py
# remotepath 为服务器端存放上传文件的绝对路径,而不是一个目录。如:/tmp/my_file.txtsftp.get(remotepath, localpath)      # 上传 文件 指令

Linux 远程 操作:

一、SSH 的 连接方式:

# 使用 上述的 ssh 连接方式stdin, stdout, stderr = ssh.exec_command(command)# 使用的 命令成功 后返回的结果 为:stdout
# 当 Linux 命令 报错时 返回的 命令为: stderr 

SSH 的 连接有一定的 缺点;每一次的 操作 都属于 新的 窗口连接
因此使用 连续 命令操作时 使用 \n 对每一条命令进行分割

二、session 的 连接方式:

# 使用 上述的 session 的方式 连接session.send(b"ls \n")      # 使用 时 注意 要用  \n  结尾# 这个 连接方式 没有返回的 结果内容  想要知道 命令结果 则需要定义一个 buffer
# 将 界面的 内容放置 缓存 实时 反馈查看  方法如下:def get_buffer(self):   # 通过 该函数 持续获取结果  作用与大家打开窗口一样的效果while True:buffer = self.session.recv(999999)print(buffer.decode(errors='ignor'))if buffer.endswith(b"KeyboardInterrupt"):        # 对于需要 结束的 情况 进行判断return

session 的 连接方式 是可持续连接的;中间不会因为 终端而 无效
比如:使用 tmux 窗口时,需要 连续的操作可以 完成连续操作

总结:

使用 Python 操作 Linux 时需要对 Linux 的命令操作熟悉;
对于 Linux 的 系统结构 熟悉;学习 Linux的基本操作等;
如果 想要 熟悉 Linux 以及需要测试 Python的 远程操作 Linux的 命令;可以下载一个虚拟机 ;装载一个虚拟的 系统环境,比如:kali ,

装好虚拟 Linux 系统后需要开启 Linux 的 SSH 服务才可以使用;
开启 SSH 服务 命令:service ssh start
关闭 SSH 服务 命令:service ssh stop
查看 IP 命令:ifconfig
默认 端口 为:22
用户名和密码:就是登录使用的账号密码

Linux 常用命令:

mv 文件地址  目标移动目录      # 文件移动命令
cd 文件目录     # 切换文件夹
ls  查看所含文件
rm -rf 强删
wget 文件地址       # 下载文件  http
unzip zip文件     # 解压文件tmux 窗口使用:
下载安装 : sudo yum install tmux
查看存在窗口:tmux ls
重连存在窗口:tmux attach -t 窗口名字杀死会话
tmux kill-session命令用于杀死某个会话。
# 使用会话编号
$ tmux kill-session -t 0
# 使用会话名称
$ tmux kill-session -t <session-name>
tmux kill-session -all切换会话。
tmux switch命令用于切换会话。
# 使用会话编号
$ tmux switch -t 0
# 使用会话名称
$ tmux switch -t <session-name>

本文 提到的 Linux 操作命令 不多 ;大家可以自行搜索一下;
通过 Python 的远程操作方式,可以将需要部署的 程序 写成 一个字典、列表或者 Excel 表格;也可以使用 数据库 进行 控制部署
当然远程程序的定时部署还有许多其他的方法可以部署。

Python 远程操作 Linux相关推荐

  1. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

  2. Python远程操作Oracle实现一键备份还原数据库演示,利用socket进行imp、exp一键导入导出oracle数据库dmp文件

    Python 远程操作 Oracle 进行数据库备份还原 第一章:效果演示 ① 数据库恢复演示 ② 请求模拟 第二章:功能实现 ① 创建启动服务 ② 处理解析请求 ③ 处理命令 ④ 服务端数据库操作 ...

  3. python 远程操作Sqlite3

    转自:http://hi.baidu.com/jxhtest/item/a4eff7206daa09122a0f1cca 2011-11-09 18:00 python 远程操作Sqlite3 貌似S ...

  4. linux 远程图形终端,图形终端远程操作Linux

    一.想要在远程终端运用图形界面来操作和控制Linux效劳器,就在windows下像运用MSTSC(远程桌面)一样.linux经过XDMCP来提供这种支持,我们只需用一个终端仿真软件:xmanager, ...

  5. python远程执行linux命令256_python远程操作Linux——使用paramiko库

    一.paramiko介绍 paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式.可以实现远程命令执行.文件传输.中间SSH代理等功能,相对于Pexpect,封装的层次更高, ...

  6. python远程创建linux用户_如何设置远程访问的Jupyter Notebook服务器-02:如何创建Linux用户?...

    (这是一篇面向零基础读者的教程) 在铺垫了端口号的预备知识之后,下面我们讲讲搭建Jupyter服务器的另外一个前置工作--如何创建Linux用户. 下面我们的实验环境默认为CentOS 7.事实上,即 ...

  7. python远程登录linux命令,Python+requests通过paramiko远程登录Linux执行sh命令

    在做自动化测试过程中, 偶尔需要登录Linux服务器执行一些sh命令.Python的paramiko模块, 遵循SSH2协议, 支持以加密和认证的方式远程连接服务器, 可用来连接远程linux主机, ...

  8. 无名岛外贸电商 远程操作linux网站常用命令,整理收集 Linux SSH命令 (

    远程SCP上传文件 scp -P 端口号 文件名 远程帐号@IP地址:待上传的文件地址拷贝远程文件到本地 scp -P 端口号 远程帐号@IP地址:待上传的文件地址 本地存放地址 rm -rf myd ...

  9. Ubuntu远程操作Linux服务器GUI程序

    此文针对在Server端执行gui程序失败的情况 OS:Ubuntu 12.04(以下操作应该在其他版本的Ubuntu上也适用) 首先,检查你的Xserver,看是否有一个"-noliste ...

最新文章

  1. Ranorex中利用code module对于测试数据的管理
  2. 算法竞赛入门与进阶 (四)二分
  3. iSensor APP 之 摄像头调试 OV3640 OV2640 MT9d112
  4. excel按季度分类汇总_Excel数据分析实战(1)--电商销售记录分析
  5. 初识Matlab遗传算法工具箱 ga
  6. 51 SD配置-定价配置-维护定价过程
  7. 【快速入门Linux】5_Linux命令—远程管理常用命令
  8. 小米CC9 Pro同款一亿像素摄像头有望被三星Galaxy S11采用
  9. Leetcode每日一题:112.path-sum(路经总和)
  10. JavaScript学习-函数
  11. java基础总结02-语言基础
  12. 二、appium的原理
  13. 免费下载道客巴巴文档的方法
  14. iperf3网络测试工具下载网址
  15. 颜色对照表(四)(16进制、RGB、CMYK、HSV、中英文名)
  16. js原型继承的几种方式
  17. 各种快捷键组合操作让Spotlight搜索变得无比强大
  18. 复杂sql语句:按部门统计人数
  19. 服务器硬盘rad技术,服务器硬盘RAD选用.doc
  20. 聚合和分组F,Q和事物,cookie,session

热门文章

  1. (附源码)python《C语言程序设计》课程案例库研究 毕业设计 030946
  2. 小程序这一波操作让拼多多又火了!
  3. OpenCV——图像傅里叶变换
  4. toojpeg库 添加测试代码
  5. deepin如何批量下载安装字体?
  6. 如何学好人力资源管理?方法及书籍推荐
  7. 从入门到卓越——大学生的软件开发成长之路
  8. 即将踏入工作,你对公司的若干职简称了解么?(CEO、CFO、CTO、CDO、CAO ...)
  9. 微信小程序和公众号区别
  10. TensorFlow的batch_normalization