この 4.20.3 Arch システムの BTRFS フォーマットディスクには/
空き容量がありません。その理由はmlocateによるものであることがわかりました。
# du -h --exclude=Volumes -- * 2>/dev/null | sort -hr | head -2
11G var
9.6G var/lib/mlocate
質問更新済み: '/var/lib/mlocate/mlocate.db' 一時ファイルを開けません。許可された回答では事前に追加することを提案しますsudo
が、何も変更されません。
# sudo updatedb
updatedb: `/var/lib/mlocate/mlocate.db' is locked (probably by an earlier updatedb)
/var/lib/mlocateにすべてのディスク領域を使用する一時ファイルがあるようです。
# ls -lh var/lib/mlocate/
-rw-r----- 1 root locate 1.1M Oct 21 00:00 mlocate.db
-rw------- 1 root root 9.6G Dec 30 19:46 mlocate.db.PRvfsw
根本的な原因は保留.timer
中の更新操作である可能性がありますか?
# systemctl status updatedb.timer
* updatedb.timer - Daily locate database update
Loaded: loaded (/usr/lib/systemd/system/updatedb.timer; static; vendor preset: disabled)
Active: active (running) since Mon 2019-10-21 16:05:10 CEST; 2 months 9 days ago
Trigger: n/a
一時的な大容量の.dbファイルもrestart
削除されず、まだ返されます。stop
updatedb
locked
updatedb
まだ実行中のプロセスがあるようです。
# ps -ef | grep updatedb
root 3249 1 99 Oct22 ? 213573-14:47:11 /usr/bin/updatedb
プロセスを終了できることを知っています。根本的な原因はUSBスティックの欠陥である可能性が高いです。
# ls /Volumes/RM_GUE__
ls: cannot access '/Volumes/RM_GUE__/'$'\001\020': Input/output error
ls: cannot access '/Volumes/RM_GUE__/)': Input/output error
次にUSBスティックが失敗した場合は、/
再びいっぱいになります。
データベース構成ファイルの更新
このupdatedb.conf
オプションは有用なフィルタリングオプションを提供しません。
- パス別:パーティションが破損した後にパーティション名を推測できません。
- ファイルシステム固有:この場合、VFATは破損しています(読み取り専用)が、将来のどのファイルシステムが破損するかを予測することはできません。
updatedb.timer
たとえば、実行可能期間を制限したり、入力/出力エラーのあるディスクをスキップしたり、LimitFSIZE=
ファイルサイズを制限してこの問題を完全かつ恒久的に解決したりするにはどうすればよいですか。
答え1
mlocate
(についてのドキュメントを参照)はman mlocate
につながり、updatedb
順番に次のように言います。
特定のオプションによって変更された
PRUNE_BIND_MOUNTS
変数と変数はPRUNEFS
(5)で詳しく説明されていますPRUNENAMES
。PRUNEPATHS
updatedb.conf
ドキュメント(man updatedb.conf
)を読み、ファイルを表示すると、/etc/updatedb.conf
要件を満たすことができる2つの可能なオプションが表示されます。
PRUNEFS
updatedb
(8)で検索してはいけないスペースで区切られたファイルシステムタイプのリスト(/ etc / mtabで使用)。ファイルシステムタイプの一致は大文字と小文字を区別しません。
PRUNEPATHS
(8)で検索してはいけないスペースupdatedb
で区切られたディレクトリパス名のリスト。各パス名は、(1)レポートディレクトリの正確な形式でなければなりませんlocate
。
USBスティックやその他のリムーバブルメディアが常に下にマウントされている場合は、そのディレクトリを設定/Volumes
に追加できます。私のDebianシステムでは、次のような結果が出ます。PRUNEPATHS
/etc/updatedb.conf
PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /Volumes"
または、USBスティックが常にFATまたはNTFSの場合は、これらのファイルシステムタイプを指定された除外セットに追加できますPRUNEFS
。