tar / zip并转移到剩余空间有限的另一台服务器

时间:2018-02-01 09:50:46

标签: networking tar

我需要销毁的服务器上有一个60千兆字节的文件夹。但是,我只剩下6G的服务器空间。

除了文件夹的大小外,其中还有数十万个小文件。所以做一个简单的scp将需要永远。我真的想tar czf这个文件夹,但同样,我没有空间。

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用的另一种方法(并且它满足请求的“转移到另一台服务器”部分):

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

与scp不同,它不会针对每个小文件进行单独的往返操作,因此它的速度与gzip一样快(或者就像网络可以传输的速度一样快,如果速度慢的话)。由于存档已写入远程服务器,因此您不必担心磁盘空间。而且由于不是正在删除它,你可以^ C它没有留下你原来位置的一半文件而另一半留在tarball中。

您还可以通过更改为

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

有点像rsync而没有“同步”。在右侧tar命令中添加v以列出目标服务器收到文件时的文件。

答案 1 :(得分:0)

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

所以我的命令就是这样:

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

在第二个终端窗口中,多次输入du -sh /home/cpm006确认文件正在被删除,因为它们被添加到tar存档中。

显而易见的好处是,即使空间有限,您也可以使用存档来释放磁盘空间。

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