python调用远程的python文件_Python-在两个远程服务器之间传输文件,执行Python脚本...

我正试图在两台服务器之间从localServer复制一个文件,例如从server-A复制到server-B。我在python中使用paramiko包。

所以有三个服务器,分别是localServer、server-A和server-B。请看下面的代码,这是不言而喻的,请让我知道哪里我做错了。

我正在使用的算法:我试图从localServer运行paramiko_test.py文件。

paramiko_test.py在server-A中执行copy.py文件。

copy.py使用SFTP将server-A中的文件source.txt复制到server-B。

当我从server-A运行copy.py时,它工作正常。但当我从localServer运行paramiko_test.py(它间接地在server-A中执行copy.py)时,它就不工作了!

从日志中,我知道从server-A到server-B有一个成功的连接,但是之后SFTP部分不工作了!

问题:我们可以在SFTP客户机中调用SFTP客户机吗?有没有更好的方法在两台服务器之间复制文件?

如果我做错了,请帮帮我。

服务器A,文件:copy.py:import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('', username='serverB', password='passwd')

print "connected successfully!"

sftp = ssh.open_sftp()

print sftp

sftp.put('source.txt','/home/serverB/destination.txt' )

sftp.close()

print "copied successfully!"

ssh1.close()

exit()

本地服务器,paramiko_test.py:import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('', username='serverA', password='passwd')

print "connected successfully!"

stdin, stdout, stderr = ssh.exec_command("python /home/username/copy.py")

print stdout.readlines()

print "copied successfully!"

ssh.close()

exit()

stderr.readlines()的输出是:Traceback (most recent call last):

File "/home/sitaram/sumanth/test_progs/copy.py", line 12, in

sftp1.put('./sumanth_temp.txt','/home/ncloudadmin/sumanth.txt' )

File "/usr/lib/pymodules/python2.6/paramiko/sftp_client.py", line 558, in put

file_size = os.stat(localpath).st_size

OSError: [Errno 2] No such file or directory: './sumanth_temp.txt'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值