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 相关文章推荐
Python入门篇之面向对象
Oct 20 Python
Python中http请求方法库汇总
Jan 06 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
python如何统计序列中元素
Jul 31 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
Django 模型类(models.py)的定义详解
Jul 19 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
jupyter notebook 增加kernel教程
Apr 10 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
Python文件夹批处理操作代码实例
Jul 21 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
pandas中DataFrame重置索引的几种方法
May 24 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
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
初学CAKEPHP 基础教程
2009/11/02 PHP
组合算法的PHP解答方法
2012/02/04 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
python虚拟环境virtualenv的使用教程
2017/10/20 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
django使用JWT保存用户登录信息
2020/04/22 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
文明市民先进事迹
2014/05/15 职场文书
小组名称和口号
2014/06/09 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
vue如何使用模拟的json数据查看效果
2022/03/31 Vue.js