python Pexpect 实现输密码 scp 拷贝的方法


Posted in Python onJanuary 03, 2019

在服务器A上的程序用到服务器B上的文件data,并且需要定期更新文件。 但是直接在bash文件中使用

scp -P 1000 192.168.199.10:/temp/data /temp

由于权限限制,不能免ssh密码拷贝,会要求输入B机器的密码。本想直接在bash文件中使用Pexpect 来实现自动输入密码,并scp拷贝文件,但是权限的限制导致不能安装使用Pexpect 。

最后考虑使用python实现。

环境:

python2.7 centos

from pexpect import *
import os
cwd = os.path.split(os.path.abspath(__file__))[0]

child = spawn("scp -P 1000 192.168.199.5:/temp/data {cwd}".format(cwd=cwd))
child.expect ("password")
child.sendline ("password-for-B ")
child.read()

在网上查到的一些资料中,一般都会少 child.read(), 这将使得,scp输入了正确密码,完成链接,但是服务器没有将拷贝的数据文件读取到服务器A上。

有关以上命令的解释见官方文档的说明。

参考

Pexpect

https://pexpect.readthedocs.io/en/stable/index.html

以上这篇python Pexpect 实现输密码 scp 拷贝的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python httplib,smtplib使用方法
Sep 06 Python
使用python的chardet库获得文件编码并修改编码
Jan 22 Python
Python切片用法实例教程
Sep 08 Python
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
Python多进程分块读取超大文件的方法
Apr 13 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Django添加feeds功能的示例
Aug 07 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
python解析多层json操作示例
Dec 30 Python
python实现图像拼接
Mar 05 Python
Django实现图片上传功能步骤解析
Apr 22 Python
vscode调试django项目的方法
Aug 06 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 #Python
Python中shapefile转换geojson的示例
Jan 03 #Python
Python关于excel和shp的使用在matplotlib
Jan 03 #Python
Python使用folium excel绘制point
Jan 03 #Python
Python获取航线信息并且制作成图的讲解
Jan 03 #Python
Python中GeoJson和bokeh-1的使用讲解
Jan 03 #Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 #Python
You might like
PHP初学者常见问题集合 修正版(21问答)
2010/03/23 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
php中require和require_once的区别说明
2014/02/27 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
JavaScript解析任意形式的json树型结构展示
2017/07/23 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
vue.js watch经常失效的场景与解决方案
2021/01/07 Vue.js
[05:05]第三天的dota2
2013/07/29 DOTA
使用pdb模块调试Python程序实例
2015/06/02 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
pytorch之添加BN的实现
2020/01/06 Python
Python3如何判断三角形的类型
2020/04/12 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
weblogic面试题
2016/03/07 面试题
新郎父亲婚宴答谢词
2014/01/11 职场文书
医学专业职业生涯规划范文
2014/02/05 职场文书
学校食品安全实施方案
2014/06/14 职场文书
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
使用Postman测试需要授权的接口问题
2022/06/21 Java/Android