python Pexpect 实现输密码 scp 拷贝的方法
在服务器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 拷贝的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Flask 让jsonify返回的json串支持中文显示的方法
下面小编就为大家分享一篇Flask 让jsonify返回的json串支持中文显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-03-03PyCharm+Qt Designer+PyUIC安装配置教程详解
这篇文章主要介绍了PyCharm+Qt Designer+PyUIC安装配置教程详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-06-06Python Pandas list列表数据列拆分成多行的方法实现
这篇文章主要介绍了Python Pandas list(列表)数据列拆分成多行的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
今天小编就为大家分享一篇python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-06-06
最新评论