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 Queue模块详解
Nov 30 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
Python自定义线程池实现方法分析
Feb 07 Python
python人民币小写转大写辅助工具
Jun 20 Python
python安装twisted的问题解析
Aug 21 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
python将txt文档每行内容循环插入数据库的方法
Dec 28 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
python抓取多种类型的页面方法实例
Nov 20 Python
python快速排序的实现及运行时间比较
Nov 22 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
Python几种酷炫的进度条的方式
Apr 11 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代码
2006/12/06 PHP
PHP strtr() 函数使用说明
2008/11/21 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
node.js使用cluster实现多进程
2016/03/17 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
Python使用装饰器进行django开发实例代码
2018/02/06 Python
Flask框架配置与调试操作示例
2018/07/23 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
django框架模板语言使用方法详解
2019/07/18 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python GUI计算器的实现
2020/10/09 Python
Python基于template实现字符串替换
2020/11/27 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
逻辑链路控制协议
2016/10/01 面试题
服务行业个人求职的自我评价
2013/12/12 职场文书
《大自然的语言》教学反思
2014/04/08 职场文书
《谁的本领大》教后反思
2014/04/25 职场文书
检讨书格式
2015/05/07 职场文书
聘任合同书
2015/09/21 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书