如何删除远程系统上具有配额的目录?

如何删除远程系统上具有配额的目录?

我有一个 rsync.net 帐户已达到配额,我正在尝试删除 (rm -rf) 目录以清理空间。然而,我能想到尝试的所有删除命令(rm、truncate、find -delete 等)都会给我一个与“超出磁盘配额”相关的错误。

我发现的唯一方法是 scp 一个空文件并覆盖目录中的每个文件。

有没有更好的方法来解决这个问题?理想情况下是单衬吗?

答案1

你尝试过什么吗fallocate

以下将具有与 相同的最终效果truncate,但使用不同的调用序列,并且仅适用于 ext4 和 XFS,其文件是文件系统块大小的倍数:

fallocate -c 0 -l `wc -c <file>` <file>

这将使该文件成为与原始文件具有相同(表观)长度的稀疏文件(但仅适用于 ext4、XFS、BTRFS 和 tmpfs):

fallocate -p 0 -l `wc -c <file>` <file>

除此之外,该unlink命令可能会起作用(但我怀疑它正如您所评论的那样find -delete不起作用。

但根据你所说的,在我看来,他们正在使用 BTRFS 进行后端存储,如果他们需要使用配额,他们可能不应该这样做(BTRFS 上的配额与大多数其他文件系统上的配额工作方式不同,并且现在有一些非常重要的可扩展性和可用性问题)。

相关内容