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中使用sys模板和logging模块获取行号和函数名的方法
Apr 15 Python
Python对列表排序的方法实例分析
May 16 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
利用python开发app实战的方法
Jul 09 Python
django多个APP的urls设置方法(views重复问题解决)
Jul 19 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
Django cookie和session的应用场景及如何使用
Apr 29 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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
QueryPath PHP 中的jQuery
2010/04/11 PHP
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
2013/12/05 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
在AngularJS应用中实现一些动画效果的代码
2015/06/18 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
微信运维交互机器人的示例代码
2018/11/12 Javascript
python处理PHP数组文本文件实例
2014/09/18 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
基于Django contrib Comments 评论模块(详解)
2017/12/08 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
AmazeUI在模态框中嵌入表单形成模态输入框
2020/08/20 HTML / CSS
化工工艺专业求职信
2013/09/22 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
幼儿园教师求职信
2015/03/20 职场文书
教师考核鉴定意见
2015/06/05 职场文书
运动会加油稿50字
2015/07/21 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
大学军训心得体会800字
2016/01/11 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
市场营销计划书
2019/04/24 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技