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 tempfile模块学习笔记(临时文件)
May 25 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
python动态视频下载器的实现方法
Sep 16 Python
Python使用贪婪算法解决问题
Oct 22 Python
PyQt5实现简单的计算器
May 30 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
python如何调用百度识图api
Sep 29 Python
BeautifulSoup获取指定class样式的div的实现
Dec 07 Python
python requests库的使用
Jan 06 Python
Python sklearn分类决策树方法详解
Sep 23 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
PHP使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
php生成zip文件类实例
2015/04/07 PHP
php上传图片并压缩的实现方法
2015/12/22 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
一个JS小玩意 几个属性相加不能超过一个特定值.
2009/09/29 Javascript
JS跨域总结
2012/08/30 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
Bootstrap 最常用的JS插件系列总结(图片轮播、标签切换等)
2016/07/14 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
node实现分片下载的示例代码
2018/10/17 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
python检测lvs real server状态
2014/01/22 Python
Python基于Tkinter的HelloWorld入门实例
2015/06/17 Python
Python中super函数的用法
2017/11/17 Python
python递归函数用法详解
2020/10/26 Python
python跨文件使用全局变量的实现
2020/11/17 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
如何进行Linux分区优化
2016/09/13 面试题
2014年社区国庆节活动方案
2014/09/16 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
高中生军训感言
2015/08/01 职场文书
Python 读写 Matlab Mat 格式数据的操作
2021/05/19 Python