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


Posted in Python onJuly 12, 2019

本文实例讲述了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 相关文章推荐
详解C++编程中一元运算符的重载
Jan 19 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
浅谈python对象数据的读写权限
Sep 12 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
python爬虫headers设置后无效的解决方法
Oct 21 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
Feb 29 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
Django REST Framework 分页(Pagination)详解
Nov 30 Python
完美解决python3.7 pip升级 拒绝访问问题
Jul 12 #Python
在交互式环境中执行Python程序过程详解
Jul 12 #Python
pip指定python位置安装软件包的方法
Jul 12 #Python
python使用Pandas库提升项目的运行速度过程详解
Jul 12 #Python
Python-copy()与deepcopy()区别详解
Jul 12 #Python
新手入门Python编程的8个实用建议
Jul 12 #Python
python读取并写入mat文件的方法
Jul 12 #Python
You might like
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
php中异常处理方法小结
2015/01/09 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
2018/12/13 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
深入了解Python数据类型之列表
2016/06/24 Python
详解django三种文件下载方式
2018/04/06 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python基于Selenium的web自动化框架
2019/07/14 Python
用django设置session过期时间的方法解析
2019/08/05 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Django xadmin安装及使用详解
2020/10/26 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
Python学习之os包使用教程详解
2022/03/21 Python
python lambda 表达式形式分析
2022/04/03 Python