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 MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
Python json模块使用实例
Apr 11 Python
python实现爬虫统计学校BBS男女比例(一)
Dec 31 Python
Python开发的HTTP库requests详解
Aug 29 Python
分享一个简单的python读写文件脚本
Nov 25 Python
解决Python2.7读写文件中的中文乱码问题
Apr 12 Python
python实现简单登陆系统
Oct 18 Python
python使用插值法画出平滑曲线
Dec 15 Python
图文详解python安装Scrapy框架步骤
May 20 Python
如何利用Anaconda配置简单的Python环境
Jun 24 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
获取python运行输出的数据并解析存为dataFrame实例
Jul 07 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中的PHP_EOL换行符详细解析
2013/10/26 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
js 面向对象的技术创建高级 Web 应用程序
2010/02/25 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
jQuery菜单插件superfish使用指南
2015/04/21 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
js实现自定义滚动条的示例
2020/10/27 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python3中的2to3转换工具使用示例
2015/06/12 Python
python测试mysql写入性能完整实例
2018/01/18 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
python递归全排列实现方法
2018/08/18 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
python中如何设置代码自动提示
2020/07/15 Python
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
毕业生求职推荐信
2013/11/04 职场文书
中专毕业生的自我鉴定
2013/12/01 职场文书
石油大学毕业生自荐信
2014/01/28 职场文书
业绩考核岗位职责
2014/02/01 职场文书
自主招生教师推荐信
2014/05/10 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
民事答辩状格式范文
2015/05/21 职场文书
感谢师恩主题班会
2015/08/17 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
JavaScript实现队列结构过程
2021/12/06 Javascript