我想备份一个包含大量文件的远程目录,因此,我需要在下载之前对其进行压缩。我可以通过 SSH 或 FTP 访问该文件夹。主机在 Linux 上运行。
我已经用aioftp
介绍了下载部分。我使用 paramiko
和 tar
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/