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程序中操作文件之flush()方法的使用教程
May 24 Python
深入理解Python3 内置函数大全
Nov 23 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
手动安装python3.6的操作过程详解
Jan 13 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
Apr 17 Python
opencv 图像腐蚀和图像膨胀的实现
Jul 07 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
如何从csv文件构建Tensorflow的数据集
Sep 21 Python
Python 生成短8位唯一id实战教程
Jan 13 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
DC动漫人物排行
2020/03/03 欧美动漫
PDO::lastInsertId讲解
2019/01/29 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
js全选按钮的实现方法
2015/11/17 Javascript
聊一聊Vue.js过渡效果
2016/09/07 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
详解node单线程实现高并发原理与node异步I/O
2017/09/21 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
js实现计算器功能
2020/08/10 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python原始字符串(raw strings)用法实例
2014/10/13 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
几个适合python初学者的简单小程序,看完受益匪浅!(推荐)
2019/04/16 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
新颖的化妆品活动方案
2014/08/21 职场文书
争先创优活动总结
2014/08/27 职场文书
卖车协议书范例
2014/09/16 职场文书
2014年应急工作总结
2014/12/11 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技