Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SSH或FTP压缩远程目录的Pythonic方法_Python_Ssh_Urllib_Paramiko_Tarfile - Fatal编程技术网

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

使用SSH或FTP压缩远程目录的Pythonic方法,python,ssh,urllib,paramiko,tarfile,Python,Ssh,Urllib,Paramiko,Tarfile,我想备份一个包含大量文件的远程目录,因此,我需要在下载它之前对其进行压缩。我可以通过SSH或FTP访问此文件夹。主机正在Linux上运行 我已经用aioftp介绍了下载部分。我使用paramiko和tarLinux命令来压缩远程主机中的目录,但是我想使用Python模块(无论是否来自标准库)并避免使用Linux命令。也许结合使用paramiko打开会话、urllib创建远程对象和tarfile压缩它可以完成任务,但我还没有找到方法 最后,我希望在本地主机中有一个目录backup.tar.gz。

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

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

最后,我希望在本地主机中有一个
目录backup.tar.gz

如何才能做到这一点?

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

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


如果要使用Python代码进行压缩,则必须在服务器上运行Python代码。要么上传脚本并在服务器上执行,要么将代码提供给远程
python
进程。我不认为这样做比使用现成的
tar
命令有什么好处。

谢谢您的回答。让我感到奇怪的是,
tar
有时会发出
内容更改
警告,我无法阻止,因为我无法修改远程目录条件,返回的代码是1(类似严重错误)。所以我想用一个Python模块来管理它,并使它更容易处理。另外,我在问题中澄清了我想在远程主机中进行压缩,然后将其下载到本地主机,这就是备份的目的。好的,但即使在您编辑之后,我也没有任何补充。它仍然存在。