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模块正则表达式操作
May 25 Python
Python单例模式实例详解
Mar 01 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
遗传算法之Python实现代码
Oct 10 Python
selenium+python实现1688网站验证码图片的截取功能
Aug 14 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
python中dict使用方法详解
Jul 17 Python
numpy中的meshgrid函数的使用
Jul 31 Python
Python 实现自动导入缺失的库
Oct 29 Python
python实现的Iou与Giou代码
Jan 18 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
Python暴力破解Mysql数据的示例
Nov 09 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
一个程序下载的管理程序(四)
2006/10/09 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
浅析js封装和作用域
2013/07/09 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
jQuery封装的获取Url中的Get参数示例
2013/11/26 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
vue 2.0组件与v-model详解
2017/03/27 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python注释详解
2016/06/01 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
替换python字典中的key值方法
2018/07/06 Python
numpy.ndarray 交换多维数组(矩阵)的行/列方法
2018/08/02 Python
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
简历自我评价怎么写好呢?
2014/01/04 职场文书
员工考核管理制度
2014/02/02 职场文书
40岁生日感言
2014/02/15 职场文书
创新型城市实施方案
2014/03/06 职场文书
企业公益活动策划方案
2014/08/24 职场文书
思想作风建设心得体会
2014/10/22 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
图文详解nginx日志切割的实现
2022/01/18 Servers