tar/zip AND 转移到另一台服务器,剩余 space 有限

tar/zip AND transfer to another server with limited space remaining

我在服务器上有一个大小为 60GB 的文件夹,我需要销毁它。但是,我的服务器上只剩下 6G space。

除了文件夹的大小外,里面还有几十万个小文件。所以做一个简单的 scp 会花很长时间。我真的很想 tar czf 文件夹,但同样,我没有 space.

有什么办法吗?

我发现了解决方案并想分享这个:--remove-files 是实现这个的方法。

所以我的命令是这样的:

tar --remove-files -czf cpm006.tar.gz cpm006/

在第二个终端 window 上多次输入 du -sh /home/cpm006 确认文件在添加到 tar 存档后立即被删除。

这样做的明显好处是您可以出于释放磁盘 space 的目的进行归档,即使 space 是有限的。

参考: https://linux.die.net/man/1/tar

您可以使用的另一种方法(满足请求的 "transfer to another server" 部分):

tar cz sourcedir/ | ssh somewhere 'cat > dest.tar.gz'

与 scp 不同,它不会对每个小文件进行单独的操作,单独的往返,所以它会像 gzip 一样快(或者像你的网络传输一样快,如果它更慢的话) ).由于存档正在写入远程服务器,因此您不必担心磁盘 space。因为它 不是 删除,你可以 ^C 它而不会留下一半的文件在它们的原始位置和另一半在 tar 球.

您还可以通过更改为

在目标端获得实时文件系统(而不是存档)
tar cz sourcedir/ | ssh somewhere 'tar xC destdir/'

有点像没有 "sync" 的 rsync。在右侧 tar 命令中添加 v 以列出目标服务器收到的文件。