通过在Linux上编写零来自动删除文件

我们运行精简configuration的Ubuntu虚拟机,它执行大量的文件写入和删除操作。 虽然客户机上的磁盘使用增长缓慢(networking写入 – 删除),但主机上虚拟磁盘的大小增长得更快,因为主机无法知道许多块被释放空间。

定期地,我们使每个虚拟机离线,并将零写入到来宾文件系统中的空闲块中。 这使我们可以收缩主机上的虚拟磁盘。

我想知道是否有人知道我们可以安装在客人上的实用程序,每次删除文件时都会自动写入零。 如果存在这样的实用程序,我们可以自动缩小主机上的虚拟磁盘,而无需在来宾中手动将零删除到已删除的文件上。

我希望问题是清楚的,并提前感谢任何帮助

使用fstrim命令。

我使用简单的cron脚本为虚拟机和其他精简configuration的文件系统,ZFS zvols和基于SSD的存储执行此操作:

#!/bin/bash for fs in $(lsblk -o MOUNTPOINT,DISC-MAX,FSTYPE | grep -E '^/.* [1-9]+.* ' | awk '{print $1}') do fstrim $fs > /dev/null 2>&1 done 

我不知道任何程序,实用程序或服务,将自动清零已删除的文件。 它需要挂钩到系统调用中,或者在内核中运行,以实现您正在寻找的自动function。

有一些实用程序通过首先将它们清零来删除文件。 你没有说什么程序正在制作和删除文件,但也许如果它是一个脚本或你可以挂钩到这些实用程序?

否则,不,这不是一个简单而自动的方式。 这是精简configuration的缺点。