Linux 시스템/var/log/journal/쓰레기 로그 청소

4999 단어 Linux/Shell
CentOS 시스템 에는 전통 적 인 rsyslog 와 systemd - journal 두 개의 로그 서비스 가 있 습 니 다.
시스템 d - journald 는 커 널, 시스템 초기 시작 단계 의 로그, 시스템 데 몬 이 시작 하고 실행 중인 표준 출력 과 오류 정 보 를 수집 할 수 있 는 개선 형 로그 관리 서비스 입 니 다. 그리고 syslog 로그 도 있 습 니 다.
이 로그 서 비 스 는 단일 구조의 로그 파일/run/log 에 만 로 그 를 집중 적 으로 저장 합 니 다. 로 그 는 압축 과 포맷 을 거 친 바 이 너 리 데이터 이기 때문에 보 거나 위 치 를 정할 때 빠 릅 니 다.
리 눅 스 시스템/var/log/journal/쓰레기 로그 청소
기본적으로 로 그 를 오래 저장 하지 않 고 한 달 동안 만 로 그 를 저장 합 니 다.또 일부 rsyslog 에서 수집 할 수 없 는 로그 도 journal 에 기 록 됩 니 다.
rsyslog 는 전통 적 인 시스템 로그 서비스 로 수 집 된 로 그 를/var/log/디 렉 터 리 의 각 로그 파일 에 기록 합 니 다.
일반적인 로그 파일 은 다음 과 같 습 니 다:
/var/log/messages 절대 다수의 시스템 로 그 는 이 파일/var/log/secure 에 기 록 됩 니 다. 모든 보안 과 인증 권한 수여 등 로 그 는 이 파일/var/log/mail 로그 메 일 서비스의 로그/var/log/cron crond 계획 작업 의 로그/var/log/boot. log 시스템 이 시작 하 는 상관 로그 입 니 다.
 
리 눅 스 에는 스 팸 파일 이 없고 윈도 에 만 스 팸 파일 이 있다 는 말 이 있 었 다. 사실은 그렇지 않 았 다. 둘 다 스 팸 파일 이 있 었 다.
운영 체 제 는 각종 파일 을 조작 하 는 시스템 이다. 로그 파일 이 없 을 수도 없고 임시 파일 이 생기 지 않 을 수도 없다. 종 이 를 자 르 는 것 처럼 임시로 폐기물 이 생기 는 것 은 자 연 스 러 운 일이 다.
리 눅 스 가 공간 을 차지 하 는 스 팸 파일 이 있 는 지 없 는 지 는 어떻게 판단 하 는 지 보 겠 습 니 다. 예 를 들 어 몇 년 전, 몇 달 전의 로그 파일, 시스템 파일 등 은 거의 쓸모 가 없습니다. 스 팸 파일 이 라 고 할 수 있 습 니까?
ls -lhm --full-time/var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/| sort -k6 | head -n30
# ls -lhm --full-time /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/ | sort -k6 | head -n30
total 3.5G
-rw-r-x---+ 1 root systemd-journal  64M 2018-03-28 01:36:01.010275802 +0800 system@00000000000000000000000000000000-00000000000002ca-000567d28f35cca7.journal
-rw-r-x---+ 1 root systemd-journal 8.0M 2018-03-28 01:36:01.100275802 +0800 user-65534@4ee96b2fbd8b4a82beee0402402fee03-0000000000005419-000567f7fd08bd2f.journal
-rw-r-x---+ 1 root systemd-journal  72M 2018-04-02 19:16:41.644934707 +0800 system@00000000000000000000000000000000-0000000000010a47-0005686852f561be.journal
-rw-r-x---+ 1 root systemd-journal 8.0M 2018-04-02 19:16:41.714934707 +0800 user-65534@4ee96b2fbd8b4a82beee0402402fee03-0000000000011f98-00056872cab77761.journal
-rw-r-x---+ 1 root systemd-journal  72M 2018-04-08 05:48:01.673026304 +0800 system@00000000000000000000000000000000-0000000000021c40-000568dbb97116ae.journal
-rw-r-x---+ 1 root systemd-journal  72M 2018-04-13 18:25:01.967846109 +0800 system@00000000000000000000000000000000-0000000000033800-00056949207ae8a1.journal
-rw-r-x---+ 1 root systemd-journal  72M 2018-04-18 04:12:35.385621922 +0800 system@00000000000000000000000000000000-0000000000045c3e-000569b848f6f86c.journal

스 팸 파일 을 보 는 방법
청소 하기 전에 하 드 디스크 루트 구역 공간 이 급 한 것 을 발 견 했 습 니 다.  du -t 100M /var  또는  journalctl --disk-usage  명령 을 보 니/var/log/journal 로그 파일 이 3G 공간 에 가 까 운 것 을 발 견 했 습 니 다. 로그 파일 의 부 피 는 8 - 128 M 에 달 했 습 니 다. 이 로그 파일 들 은 오 랜 시간 동안 systemd 상황 을 기록 하고 가치 가 없습니다. journalctl --vacuum-size=10M 명령 으로 정리 한 후에 2.7G 의 공간 을 비 웠 습 니 다.df 명령 으로 조사해 보 니/뿌리 구역 이 과연 많이 넓 어 졌 다.
 
어떤 디 렉 터 리 의 파일 크기 를 보고 정렬 하기 (단 위 는 MB)
du -hm --max-depth=1/var/| sort -n
# du -hm --max-depth=1 /var/ | sort -n
1       /var/adm
1       /var/crash
1       /var/db
1       /var/empty
1       /var/games
1       /var/gopher
1       /var/kerberos
1       /var/local
1       /var/nis
1       /var/opt
1       /var/preserve
1       /var/spool
1       /var/tmp
1       /var/yp
131     /var/www
198     /var/lib
486     /var/cache
3695    /var/log
8513    /var/

/var/log/journal 파일 을 비 우 는 방법
1. echo 명령 으로 빈 문자열 내용 을 지정 한 파일 로 재 설정 합 니 다.
echo ""> system.journal
설명: 이 방법 은 한 번 만 비 울 수 있 습 니 다. 시간 이 지나 면 다시 수 동 으로 비 워 야 합 니 다. 다음 명령 으로 journalctl 자동 으로 공간 을 유지 할 수 있 습 니 다.
 
2. journalctl 명령 은 파일 크기 를 자동 으로 유지 합 니 다.
1) 최근 일주일 간 의 로그 만 유지
journalctl --vacuum-time=1w
 
2) 로그 500 MB 만 저장
journalctl --vacuum-size=500M
 
3) 직접 삭제 /var/log/journal/ 디 렉 터 리 의 로그 파일
rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1
 
문제 와 분석 해결
journalctl 명령 실행 오류: journal 파일 을 여 는 동안 오류 가 발생 했 습 니 다. 입력/출력 오류
# journalctl --vacuum-time=1w
Error was encountered while opening journal files: Input/output error

문제 분석: 로그 파일 손상
해결 방법: 이전 로 그 를 삭제 하고 다시 시작 합 니 다. journalctl 서비스
mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122
systemctl restart systemd-journald.service
살펴보다 /var/log/journal/로그 디 렉 터 리 는 다음 과 같 습 니 다.
# ll /var/log/journal/
drwxr-sr-x  2 root systemd-journal  4096 Jan 22 11:26 f9d400c5e1e8c3a8209e990d887d4ac1
drwxr-sr-x+ 2 root systemd-journal 12288 Jan 14 15:37 f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

 
그리고 journalctl 제한 로그 명령 을 실행 합 니 다:
# journalctl --vacuum-time=1w
Vacuuming done, freed 0B of archived journals on disk.
# journalctl --vacuum-size=500M
Vacuuming done, freed 0B of archived journals on disk.

좋은 웹페이지 즐겨찾기