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正则表达式匹配中文用法示例
Jan 17 Python
用matplotlib画等高线图详解
Dec 14 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
利用python将图片版PDF转文字版PDF
May 03 Python
python文件写入write()的操作
May 14 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
在python里面运用多继承方法详解
Jul 01 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
python绘制规则网络图形实例
Dec 09 Python
jupyter lab的目录调整及设置默认浏览器为chrome的方法
Apr 10 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
Jan 08 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
一个ftp类(ini.php)
2006/10/09 PHP
社区(php&&mysql)一
2006/10/09 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
jquery 表单取值常用代码
2009/12/22 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
Vue.js实现分页查询功能
2020/11/15 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
python字典的常用操作方法小结
2016/05/16 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
linecache模块加载和缓存文件内容详解
2018/01/11 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
Python操作Jira库常用方法解析
2020/04/10 Python
python如何爬取网页中的文字
2020/07/28 Python
瀑布模型都有哪些优缺点
2014/06/23 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
学术会议主持词
2014/03/17 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
社区结对共建协议书
2016/03/23 职场文书
golang通过递归遍历生成树状结构的操作
2021/04/28 Golang
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server