배경
나는 작은 로그 로테이션 오류가 발생했습니다 ... Logrotate는 내 실수로 파일의 이차 성장을 일으키는 실수로 아카이브 된 로그를 회전시킵니다 /var/log/
. 그리고 무언가가 끔찍하다는 바람에 /var/log/
이미 몇 백만 개의 파일 이 포함되어 있습니다 ...
나는 (일부 탈모 및 찾기 / sed / grep 마술 후) 모든 문제를 일으키는 파일을 제거하고 logrotate 구성을 수정했습니다. 그리고 모든 것이 잘되었다고 생각했습니다 ...
문제
I 때마다 ls
/ du -hs
또는 다른이의 내용을 나열 /var/log/
하는 과정은 좋은 분 또는 두 그 중단을하고 (지금 아카이브 / 로그 및 백 대부분 몇 개의 파일에서 80메가바이트을 포함). 나는 이것이 어떻게 든 로그 로테이션 실수와 관련이 있다고 생각하지만 확실하지 않습니다. 다른 것일 수 있습니다. 어쨌든 나는 디버깅을 시작하거나 이것에 대한 수정을 찾는 곳을 잃어 버렸습니다. 도와주세요 : 3
다른 정보
uname -a
Linux xxx 3.3.8-gentoo #18 SMP Sat Sep 21 22:44:40 CEST 2013 x86_64 Intel(R)
Core(TM)2 CPU 4400 @ 2.00GHz GenuineIntel GNU/Linux
cat /proc/meminfo
MemTotal: 2051552 kB
MemFree: 75612 kB
Buffers: 9016 kB
Cached: 1740608 kB
SwapCached: 0 kB
CFQ IO scheduler + SLUB allocator
나는 이것을 생각했다 : 디렉토리에 얼마나 많은 파일이 너무 많은가? (net에서 데이터 다운로드) 는 관련이 있지만 더 이상 파일이 남아 있지 않습니다.
편집하다
전화를 한 후에도 문제가 지속 init 1
되므로 FS 이외의 다른 프로세스가 없다고 가정하는 것이 안전하다고 생각합니다.
솔루션 (허용 된 답변에서 적용됨)
init 1
mv /var/log /var/log1
mkdir /var/log
chmod --reference=/var/log1 /var/log
chown --reference=/var/log1 /var/log
tar -C /var/log1 -cvp . | tar -C /var/log -xvp
rm -rf /var/log1
init 5