server関係

(最終更新:2023年3月4日)

mlocate

ファイルサーバーでファイル検索する際にfindでは時間が掛かるので,(m)locateを使う.ファイルindexのupdateは

# updatedb

で /var/lib/mlocate/mlocate.db にファイル名インデックスのデータベースが保存される. ただし,私はファイルサーバーのファイルシステムにbtrfsを採用しており,同ディレクトリ上にsnapshotを保存しているので,これを除外しないと mlocate.dbのファイルサイズが肥大化する. 具体的には5TB程度のデータでsystemのストレージ(128GB)を全て占有してしまい,updatedbが中断された.

従って updatedbの設定ファイルは /etc/updatedb.conf にあり,PRUNEPATHSで除外が可能なので,次のようにしてsnapshotのディレクトを除外する.

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /data/snapshots"
PRUNEFS="NFS afs autofs binfmt_misc ceph cgroup cgroup2 cifs coda configfs curlftpfs debugfs devfs devpts devtmpfs ecryptfs ftpfs fuse.ceph fuse.glusterfs fuse.gvfsd-fuse fuse.mfs fuse.rozofs fuse.sshfs fusectl fusesmb hugetlbfs iso9660 lustre lustre_lite mfs mqueue ncpfs nfs nfs4 ocfs ocfs2 proc pstore rpc_pipefs securityfs shfs smbfs sysfs tmpfs tracefs udev udf usbfs"

これによって5TBのファイルサーバーのmlocate.dbのサイズは1GB程度に収まる.