使用 SSH 或 FTP 压缩远程目录的 Pythonic 方法

标签 python ssh urllib paramiko tarfile

我想备份一个包含大量文件的远程目录,因此,我需要在下载之前对其进行压缩。我可以通过 SSH 或 FTP 访问该文件夹。主机在 Linux 上运行。

我已经用aioftp介绍了下载部分。我使用 paramikotar Linux 命令来压缩远程主机中的目录,但我想使用 Python 模块(无论是否来自标准库)并避免使用Linux 命令。也许结合使用paramiko来打开 session 、urllib来创建远程对象和tarfile来压缩它可以完成这项工作,但我还没有没找到路。

最后,我想要在我的本地主机中有一个 directory-backup.tar.gz 。 我怎样才能做到这一点?

最佳答案

您必须使用服务器上的工具来压缩该目录。

使用本地 Python 代码没有任何意义。要在本地压缩文件,您必须下载未压缩的文件,压缩它们(使用本地 Python 代码),然后上传压缩的存档,然后再次下载。这违背了压缩的目的,对吗?

如果您想使用Python代码进行压缩,则必须在服务器上运行Python代码。通过上传脚本并在服务器上执行它或将代码提供给远程 python 进程。与使用现成的 tar 命令相比,我认为这样做并没有多大优势。

关于使用 SSH 或 FTP 压缩远程目录的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55564316/

相关文章:

python - 如何获得 Pandas 数据框或系列图中使用的标准颜色?

python - 如何使用函数将列表相乘?

Python:KeyError/IOError 与 urllib.urlopen

python - 在 Python 中重试连接之前暂停

java - 如何在 ubuntu 20.04 上构建和安装 pylucene

python - twisted.protocols.basic.LineReceiver 和 twisted.internet.protocol.Protocol 有什么区别?

带有 ssh 问题的 git clone

git - 需要在防火墙 : trying ssh tunneling 后面使用 git

windows - 每次启动 git-bash 时都需要发出 ssh-agent 命令

python - 使用 urllib.urlretrieve() 保存图像