Debian-Squeeze
如何查看 updatedb 數據庫內容,然後排除某些文件/路徑?
我的 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/了解有關該軟體包的更多資訊。
(我花了很多時間試圖解決類似的問題!)