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 __dict__与dir()的区别详解
Oct 30 Python
Python机器学习logistic回归代码解析
Jan 17 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
django 使用全局搜索功能的实例详解
Jul 18 Python
简单的Python调度器Schedule详解
Aug 30 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
python异步Web框架sanic的实现
Apr 27 Python
什么是python的必选参数
Jun 21 Python
Python 中如何写注释
Aug 28 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
利用python进行文件操作
Dec 04 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 如何利用phpexcel导入数据库
2013/08/24 PHP
php根据年月获取季度的方法
2014/03/31 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
2014/07/19 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
php中Snoopy类用法实例
2015/06/19 PHP
php阿拉伯数字转中文人民币大写
2015/12/21 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
关于javascript document.createDocumentFragment()
2009/04/04 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
jQuery实现公告文字左右滚动的实例代码
2013/10/29 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
Node.js文件操作详解
2014/08/16 Javascript
jQuery+easyui中的combobox实现下拉框特效
2015/02/27 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
简单了解Ajax表单序列化的实现方法
2019/06/14 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python爬取哈尔滨天气信息
2018/07/14 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
Python如何实现爬取B站视频
2020/05/20 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
经管应届生求职信
2013/11/17 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
用python自动生成日历
2021/04/24 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技