Debian-Squeeze

如何查看 updatedb 數據庫內容,然後排除某些文件/路徑?

  • September 29, 2017

我的 debian (squeeze) 伺服器上的 updatedb 數據庫非常慢。

  • 數據庫在哪裡
  • 我如何查看它的內容並找出是否有一些包含無用東西的路徑,我可以添加到 prunepaths 中?
  • 如何修剪所有包含*/.git/*, */.svn/*和類似的路徑?
  • 為什麼不排除文件,我在中定義PRUNEPATHS

我的/etc/updatedb.conf樣子是這樣的:

...
# filesystems which are pruned from updatedb database
PRUNEFS="NFS nfs nfs4 afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf"
export PRUNEFS
# paths which are pruned from updatedb database
PRUNEPATHS="/tmp /usr/tmp /var/tmp /afs /amd /alex /var/spool /sfs /media /var/backups/rsnapshot /var/mod_pagespeed/"
...

編輯:

  • 定位數據庫位於/var/cache/locate/locatedb
  • locate /將列出數據庫中的所有文件和目錄(我通過將其導出到文件中來查看結果:locate />/tmp/locatedb.txt下載此 txt 文件並找到大量無用的東西)

您可能正在使用 GNU findutils 版本的 locate,它不支持 PRUNENAMES 選項。安裝 mlocate 將提供以下配置選項:

apt-get remove locate
mv /etc/updatedb.conf /etc/updatedb.conf-GNU.old
apt-get install mlocate

現在使用 mlocate 包,您可以編輯或創建 /etc/updatedb.conf 並添加以下行:

PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /var/cache /media /usr/tmp /var/tmp /sfs /afs /amd /alex /var/backups/rsnapshot /var/mod_pagespeed"
# the paths in `PRUNEPATHS` must be without trailing slashes

然後使用以下命令實現數據庫:

updatedb

您可能可以刪除巨大的舊定位數據庫:

rm /var/cache/locate/locatedb

(mlocate 數據庫儲存在/var/lib/mlocate/mlocate.db

查看https://apps.ubuntu.com/cat/applications/mlocate/了解有關該軟體包的更多資訊。

(我花了很多時間試圖解決類似的問題!)

引用自:https://serverfault.com/questions/454051