我有一个空间不足的 18GB EC2 实例。我想将文件从服务器压缩并传输到本地驱动器。上面只剩下大约 1% 的可用空间。这意味着我无法压缩驱动器上的任何内容,因为它不断给我zip I/O error: No space left on device
错误。有没有一种方法可以在不使用额外驱动器空间的情况下压缩所有内容?
我有一个空间不足的 18GB EC2 实例。我想将文件从服务器压缩并传输到本地驱动器。上面只剩下大约 1% 的可用空间。这意味着我无法压缩驱动器上的任何内容,因为它不断给我zip I/O error: No space left on device
错误。有没有一种方法可以在不使用额外驱动器空间的情况下压缩所有内容?
您可以发出命令以通过 ssh 压缩到标准输出并将标准输出本地重定向到文件。就像是:
以下工具在 Ubuntu 中可用,我已经检查过
rsync
,gzip
并且tar
在 MacOS 中也可用。rsync
它可以在本地和通过网络复制文件和/或目录树gzip
压缩单个文件tar
它可以创建一个包含许多文件和目录树的存档,并压缩,如果你指定它更改目录
更改目录
到要压缩的目录。
rsync
rsync
是一个强大的复制工具,它有一个内置的检查,传输是否正确。使用起来很简单
rsync
,如果您在连接的两端都有 Ubuntu,并且我检查了rsync
MacOS 中也有一个版本。我喜欢下面的命令行选项
-H
考虑硬链接(并避免重复传输/复制);如果没有硬链接,则应删除此选项。-a
“存档”制作适合备份或同步的副本-v
'verbose' 创建所有要复制的文件的输出-n
以及在真实情况下复制的所有文件(不带-n
)-n
让它成为“试运行”,只是展示它“想要做什么”在您的情况下,源位于服务器中,并且您通过
ssh
连接运行。因此,在客户端(您的 Mac 计算机)中,运行请注意源目录后面的斜杠。
如果看起来不错,您可以使用以下命令让它进行传输(删除
n
for 'dry run')提示和评论
传输后,您可以对目标目录中的副本做您想做的事情。我认为您想压缩它,我建议您
tar
为此目的使用并创建一个 tarball。如果您无法在 MacOS 中运行
rsync
orgzip
,tar
您可以从带有 Ubuntu 的 USB pendrive 或 DVD 磁盘启动您的 Mac 计算机,并以这种方式运行程序。(使用 Ubuntu 从 USB pendrive 或 DVD 磁盘引导计算机的建议也适用于装有 Windows 的计算机。)你可以阅读内置手册
man rsync
,在你man gzip
的man tar
Ubuntu 16.04 LTS 中,我相信你可以通过互联网找到好的教程。gzip
将目录更改
cd path-to-source-directory
为要压缩的目录。压缩单个文件
将目录更改为要提取文件的位置并运行 gunzip 解压缩
tar
将目录更改
cd path-to-source-directory
为要压缩的目录。例如,将一组文件压缩为“tarball”
或者如果外部驱动器上的目标分区中有足够的空间用于整个目录
空格和最后一个点很重要。
您可以使用以下命令“查看”tar 文件
使用以下命令从 tarball 中提取压缩文件