当前位置: 移动技术网 > IT编程>脚本编程>Python > python Pexpect 实现输密码 scp 拷贝的方法

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

2019年01月07日  | 移动技术网IT编程  | 我要评论

红山口会议,上网导航网站,ca4178

在服务器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/

以上这篇python pexpect 实现输密码 scp 拷贝的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网