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中的正则表达式
Apr 28 Python
Python中函数参数设置及使用的学习笔记
May 03 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
pandas 读取各种格式文件的方法
Jun 22 Python
详解Python3序列赋值、序列解包
May 14 Python
wxPython多个窗口的基本结构
Nov 19 Python
Pytorch之parameters的使用
Dec 31 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
Mar 03 Python
python自动脚本的pyautogui入门学习
Apr 01 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
如何在windows下安装配置python工具Ulipad
Oct 27 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 debug 安装技巧
2011/04/30 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
简述vue中的config配置
2018/01/23 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
微信小程序自定义弹窗实现详解(可通用)
2019/07/04 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
办公自动化毕业生求职信
2014/03/09 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
门面房租房协议书
2014/12/01 职场文书
教师考核评语大全
2014/12/31 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS