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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
Python中if elif else及缩进的使用简述
May 31 Python
python直接获取API传递回来的参数方法
Dec 17 Python
使用pip安装python库的多种方式
Jul 31 Python
Django集成celery发送异步邮件实例
Dec 17 Python
Python timeit模块的使用实践
Jan 13 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
python实现斗地主分牌洗牌
Jun 22 Python
Python openpyxl模块实现excel读写操作
Jun 30 Python
Python json格式化打印实现过程解析
Jul 21 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 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防注入安全代码
2008/04/09 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
Nginx实现反向代理
2017/09/20 Servers
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
Javascript MD4
2006/12/20 Javascript
基于jquery的气泡提示效果
2010/05/31 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
Python中的数学运算操作符使用进阶
2016/06/20 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
Python 转义字符详细介绍
2017/03/21 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
pytorch 数据集图片显示方法
2018/07/26 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
大学本科毕业生的自我鉴定
2013/11/26 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
优秀员工自荐书
2015/03/06 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android
用JS创建一个录屏功能
2021/11/11 Javascript