【问题标题】:How to add a file on a remote server using Python如何使用 Python 在远程服务器上添加文件
【发布时间】:2020-03-16 14:58:49
【问题描述】:

我想使用 python 将文件从笔记本电脑保存到远程服务器,但出现错误: 操作系统错误:失败 从倒数第二个命令开始。

import paramiko
ssh_client =paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname='ipaddress',username='user',password='passwd', port='port')

ftp_client=ssh_client.open_sftp()
ftp_client.put('laptop/path/to/file/','server/saving/path/')
ftp_client.close()

此外,由于该文件上已存在同名文件,因此我想将其替换为该文件。任何想法为什么此代码不起作用?

我不想在我的终端上使用 ssh,因为我希望 python 脚本每周在文件更新时自动执行此操作。

提前谢谢你

【问题讨论】:

  • 请提供完整的错误信息。
  • OSError: Failure 这只是错误消息。但我解决了这个问题。非常感谢! @AMC

标签: python ssh server


【解决方案1】:

您可以使用 scp 包在远程服务器上进行安全复制。像这样。

from scp import SCPClient

....

scp = SCPClient(ssh_client.get_transport())
payload = os.path.join(...path to file)
scp.put(payload, '/path/on/server/')

【讨论】:

  • 如果我将最后一个命令更改为 scp.put(payload, 'saving/directory/on/server/') 文件将保存在服务器上的所需目录中,并将现有文件替换为同名?
  • @EAS 有效载荷是您要发送到服务器的目录或文件的路径,您可以指定要上传的远程路径,或者在上传的情况下文件,您可以指定远程路径和文件名。比如scp.put('test.txt', '~/test2.txt')。
  • 好吧,看来你解决了我的问题。非常感谢!!
猜你喜欢
  • 2021-10-05
  • 1970-01-01
  • 2021-01-26
  • 2011-03-05
  • 2014-04-05
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2015-05-25
相关资源
最近更新 更多