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

Pythonic way to compress a remote directory using SSH or FTP

我想备份一个包含很多文件的远程目录,因此,我需要在下载之前压缩它。我可以通过 SSH 或 FTP 访问此文件夹。主机是 运行 Linux。

我已经用 aioftp 覆盖了下载部分。我使用 paramikotar Linux 命令来压缩远程主机中的目录,但是我想使用 Python 模块(来自标准库或不是)并且避免使用 Linux 命令。也许 paramiko 打开会话,urllib 创建远程对象和 tarfile 压缩它的组合可以完成这项工作,但我还没有找到方法。

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

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

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

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