gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:27 25 4
gpt4 key购买 nike

我正在尝试从 localServer 复制两个服务器之间的文件,比如从 server-Aserver-B。我在 python 中使用 paramiko 包。

所以有三个服务器,分别是localServerserver-Aserver-B。请看下面的代码,这是不言自明的,请让我知道哪里出错了。

我正在使用的算法:

  1. 我正在尝试从 localServer 运行 paramiko_test.py 文件。
  2. paramiko_test.pyserver-A 中执行copy.py 文件。
  3. copy.py 使用 SFTP 将 server-A 中的 source.txt 文件复制到 server-B .

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

从日志中,我知道从 server-Aserver-B 的连接成功,但之后 SFTP 部分不工作了!

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

请帮助我哪里出错了。

server-A, file:copy.py:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('<server-B-IP>', 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()

localServer, paramiko_test.py:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('<server-A-IP>', 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 <module>
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'

最佳答案

问题是一年前的,所以可能不再相关,但也许对其他人有用。问题出在你的 copy.py 中。

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

source.txt 在哪里?提供完整路径,或者如果文件始终位于与 copy.py 相同的目录中,您可以修改 paramiko_test.py

ssh.exec_command("cd /home/username/; python /home/username/copy.py")

关于Python - 在两个远程服务器之间传输文件,执行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14625509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com