Python实现的远程文件自动打包并下载功能示例

 更新时间:2019年07月12日 11:36:08   作者:cakincqm  
这篇文章主要介绍了Python实现的远程文件自动打包并下载功能,结合实例形式分析了Python使用spawn()方法执行ssh、scp 命令实现远程文件的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现的远程文件自动打包并下载功能。分享给大家供大家参考,具体如下:

一 点睛

在Linux系统集群运营当中,时常需要批量远程执行Linux命令,并且双向同步文件的操作。

本示例通过使用spawn()方法执行ssh、scp 命令的思路来实现。

二 代码

import pexpect
import sys
ip="192.168.0.104"
user="root"
passwd="123456"
target_file="/data/test.txt"
child = pexpect.spawn('/usr/bin/ssh', [user+'@'+ip])
fout = file('mylog.txt','w')
child.logfile = fout
try:
  child.expect('password: ')
  child.sendline(passwd)
  child.expect('#')
  child.sendline('tar -czf /data/test.tar.gz '+target_file)
  child.expect('#')
  print child.before
  child.sendline('exit')
  fout.close()
except pexpect.EOF:
  print "expect EOF1"
except pexpect.TIMEOUT:
  print "expect TIMEOUT1"
child = pexpect.spawn('/usr/bin/scp', [user+'@'+ip+':/data/test.tar.gz','/home'])
fout = file('mylog.txt','a')
child.logfile = fout
try:
  child.expect('(?i)password')
  child.sendline(passwd)
  child.expect(pexpect.EOF)
except pexpect.EOF:
  print "expect EOF2"
except pexpect.TIMEOUT:
  print "expect TIMEOUT2"

三 运行

[root@localhost pymaintain]# python 5_3_3.py
tar -czf /data/test.tar.gz /data/test.txt
tar: Removing leading `/' from member names

四 日志输出

[root@localhost pymaintain]# cat mylog.txt
Kernel \r on an \m
root@192.168.0.104's password: 123456
Last login: Sun Feb 24 16:20:25 2019 from 192.168.0.120
hello cakin24!
[root@slave2 ~]# tar -czf /data/test.tar.gz /data/test.txt
tar -czf /data/test.tar.gz /data/test.txt
tar: Removing leading `/' from member names
[root@slave2 ~]# exit
Kernel \r on an \m
root@192.168.0.104's password: 123456
test.tar.gz                  100% 115  40.3KB/s  00:00

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • matplotlib绘制符合论文要求的图片实例(必看篇)

    matplotlib绘制符合论文要求的图片实例(必看篇)

    下面小编就为大家带来一篇matplotlib绘制符合论文要求的图片实例(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 教你如何用python操作摄像头以及对视频流的处理

    教你如何用python操作摄像头以及对视频流的处理

    这篇文章主要介绍了教你如何用python操作摄像头以及对视频流的处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • 浅谈Python 中的复数问题

    浅谈Python 中的复数问题

    这篇文章主要介绍了在Python 中的复数问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • python OpenCV图像直方图处理

    python OpenCV图像直方图处理

    这篇文章主要介绍了python OpenCV图像直方图处理,文章通过matplotlib画一个直方图展开详情,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • 探索Python进度条魔法解密任务进展新玩法

    探索Python进度条魔法解密任务进展新玩法

    在日常编程和应用开发中,展示进度条是一种常见的技巧,不仅能够提供用户友好的体验,还可以显示任务执行的进度,Python作为一种多才多艺的编程语言,提供了多种方法来创建进度条,本篇文章将深入探讨这些方法,为您呈现各种实现进度条的技术和技巧
    2024-01-01
  • Flask使用Pyecharts在单个页面展示多个图表的方法

    Flask使用Pyecharts在单个页面展示多个图表的方法

    这篇文章主要介绍了Flask使用Pyecharts在单个页面展示多个图表的方法,在Flask页面展示echarts,主要有两种方法,文中给大家介绍的非常详细,需要的朋友可以参考下
    2019-08-08
  • python实现Adapter模式实例代码

    python实现Adapter模式实例代码

    这篇文章主要介绍了python实现Adapter模式实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python编程编写完善的命令行工具

    Python编程编写完善的命令行工具

    提到编写命令行工具,你可能会想到用 sys.argv 或者标准库 argparse,没错,这两个很常用,不过情况复杂时没有那么方便和高效,因此今天分享两个工具,让你编写命令行工具不费吹灰之力
    2021-09-09
  • wxPython使用系统剪切板的方法

    wxPython使用系统剪切板的方法

    这篇文章主要介绍了wxPython使用系统剪切板的方法,涉及Python使用wx模块操作系统剪切板的技巧,需要的朋友可以参考下
    2015-06-06
  • 在Python中使用lambda高效操作列表的教程

    在Python中使用lambda高效操作列表的教程

    这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map、filter、reduce、sorted等函数,需要的朋友可以参考下
    2015-04-04

最新评论