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 struct模块解析
Jun 12 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
python提取图像的名字*.jpg到txt文本的方法
May 10 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
Python面向对象实现一个对象调用另一个对象操作示例
Apr 08 Python
对django views中 request, response的常用操作详解
Jul 17 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python 制作简单的音乐播放器
Nov 25 Python
Python+kivy BoxLayout布局示例代码详解
Dec 28 Python
python 离散点图画法的实现
Apr 01 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
DOMXML函数笔记
2006/10/09 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
jquery选择器的选择使用及性能介绍
2013/01/16 Javascript
一个判断抢购时间是否到达的简单的js函数
2014/06/23 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
微信小程序数据存储与取值详解
2018/01/30 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
Python闭包之返回函数的函数用法示例
2018/01/27 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
python-地图可视化组件folium的操作
2020/12/14 Python
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
中学生运动会入场词
2014/02/12 职场文书
运动会开幕式主持词
2014/03/28 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
大专生找工作自荐书
2014/06/10 职场文书
小学生植树节活动总结
2014/07/04 职场文书
绿色环保家庭事迹材料
2014/08/31 职场文书
七年级地理教学计划
2015/01/22 职场文书
毕业酒会致辞
2015/07/29 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
MySQL数据库之存储过程 procedure
2022/06/16 MySQL