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 相关文章推荐
pycharm 使用心得(八)如何调用另一文件中的函数
Jun 06 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
Mar 19 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
实例讲解python中的协程
Oct 08 Python
Python理解递归的方法总结
Jan 28 Python
python制作英语翻译小工具代码实例
Sep 09 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Flask框架搭建虚拟环境的步骤分析
Dec 21 Python
Python底层封装实现方法详解
Jan 22 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
python 6行代码制作月历生成器
Sep 18 Python
python opencv检测直线 cv2.HoughLinesP的实现
Jun 18 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
PHPMailer邮件类利用smtp.163.com发送邮件方法
2008/09/11 PHP
学习php分页代码实例
2013/10/24 PHP
PHP采集类Snoopy抓取图片实例
2014/06/19 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
nginx下安装php7+php5
2016/07/31 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
详解php协程知识点
2018/09/21 PHP
动态控制Table的js代码
2007/03/07 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python max内置函数详细介绍
2016/11/17 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
2017/05/23 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
编辑找工作求职信范文
2013/12/16 职场文书
关于工资低的辞职信
2014/01/14 职场文书
办理居住证介绍信
2014/01/15 职场文书
保密普查工作实施方案
2014/02/25 职场文书
节约能源标语
2014/06/17 职场文书
护士辞职信怎么写
2015/02/27 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers