이 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
요구 사항을 충족할 수 있는 두 가지 가능한 옵션이 표시됩니다.
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
.