python Pexpect 实现输密码 scp 拷贝的方法

Francesca ·
更新时间:2024-09-21
· 977 次阅读

在服务器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的pexpect模块,实现远程免密登录的示例python pexpect ssh 远程登录服务器的方法对Python Pexpect 模块的使用说明详解Python Pexpect库的简单使用方法Python安装使用命令行交互模块pexpect的基础教程python之pexpect实现自动交互的例子



方法 pexpect 拷贝 scp Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号