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 re正则表达式模块(Regular Expression)
Jul 16 Python
Python操作CouchDB数据库简单示例
Mar 10 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
python实现媒体播放器功能
Feb 11 Python
python如何读写json数据
Mar 21 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
seek引发的python文件读写的问题及解决
Jul 26 Python
python是否适合网页编程详解
Oct 04 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
python 管理系统实现mysql交互的示例代码
Dec 06 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
2014/05/08 PHP
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
Winform客户端向web地址传参接收参数的方法
2016/05/17 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
js实现密码强度检验
2017/01/15 Javascript
在javaScript中检测数据类型的几种方式小结
2017/03/04 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
详解Vue源码学习之双向绑定
2019/04/10 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
Python之文字转图片方法
2018/05/10 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
Python计算信息熵实例
2020/06/18 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
Python创建文件夹与文件的快捷方法
2020/12/08 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
css3实现3d旋转动画特效
2015/03/10 HTML / CSS
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
函授本科毕业生自我鉴定
2013/10/16 职场文书
淘宝活动策划方案
2014/02/06 职场文书
副处级干部考察材料
2014/05/17 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
PL350与SW11的比较
2021/04/22 无线电