为什么/var/lib/mlocate.db的大小接近800 MB?

我能解决这个问题吗?我的磁盘空间快用完了。

可能看起来是个奇怪的问题,但是:你如何找到文件的大小? - ulidtko
数据库可以存储为稀疏文件,因此实际磁盘使用量可能与lsdu报告的差异很大。 - ulidtko
请参阅https://askubuntu.com/questions/268130/can-i-disable-updatedb-mlocate。 - Robert Pollak
我的从5.9G变成了3.5M。 :) - macetw
4个回答

在我的一个充当备份服务器的系统中,mlocate.db 文件达到了 9GB 的大小。解决方案是从 locate 中排除备份目录,因为我不需要在其中进行搜索。
我通过将备份目录添加到 `/etc/updatedb.conf` 文件的 `PRUNEPATHS` 中来实现这一点。
然后运行 `sudo updatedb`,将其减小到了 1.6MB(同时也节省了大量索引所有这些文件所需的时间)。

非常好,谢谢。刚刚从800MB减少到100MB,但更重要的是,updatedb命令现在可以非常快速地完成,而以前需要花费数天的时间。(请注意,该命令只在计算机未连接电池时运行,并且根据位于/etc/cron.daily/mlocate的脚本使用低优先级IO。) - mlissner
哇,从9 GB降到1.6 MB! - WinEunuuchs2Unix

如果您的计算机上有很多文件,您可能希望考虑从数据库中删除一些路径。您可以在/etc/updatedb.conf文件中的PRUNEPATHS下进行此操作。您还可以修剪文件系统(如nfs,如果您愿意的话)。

800MB听起来很多。我的/var/lib/mlocate/mlocate.db只有大约8MB(在10.04发布日期上进行了新安装)。如果你运行sudo updatedb,你可以安全地删除它,它会重新创建。

谢谢,那个方法有效。运行sudo updatedb之后,现在是620MB。编辑:糟糕,我读错了。620MB意味着它没有成功(我以为我的文件输出上读到的是KB)。 - evencoil
你有多少个文件?你的磁盘大小是多少? - Lekensteyn
1真的那么大吗?大小以MB为单位:'du -m /var/lib/mlocate/mlocate.db' - user8290
同时,duls命令都有一个-h标志: -h,--human-readable 以人类可读的格式打印文件大小(例如,1K 234M 2G)。 - belacqua
真的很大啊...我确实有很多非常小的文件(与一些数据工作相关)分布在几个硬盘上,所以可能是这个原因。编辑:我也保留了很多备份...有没有办法从索引器中排除目录?可能索引这些备份是个大问题。 - evencoil

这是一个包含根目录中所有文件的数据库。它被locate实用程序使用。如果您删除了此文件,locate将无法正常工作。

真的应该那么大吗? - evencoil
它不应该那么大。很可能你的主目录中有很多文件。你可以删除它,然后再次运行更新。 - user4124
如果我删除它,它会在某个时候自动重新创建吗? - evencoil
当您运行“updatedb”命令时,它将被重新创建。 - binW
似乎也被重新创造为日常任务了? - evencoil
每天都有一个cron任务在/etc/cron.daily/mlocate中运行updatedb。 - binW