Linux에서 시스템 저널 로그를 지우는 방법
이 빠른 튜토리얼은 Linux 시스템에서 시스템 저널 로그를 지우는 두 가지 방법을 보여줍니다.
이 빠른 튜토리얼은 Linux 시스템에서 시스템 저널 로그를 삭제하는 두 가지 방법을 보여줍니다.
systemd 저널은 systemd의 자체 로깅 시스템입니다. 이는 init 시스템의 syslog와 동일합니다. 다양한 시스템 서비스에 대한 커널 로깅 데이터, 시스템 로그 메시지, 표준 출력 및 오류를 수집하고 저장합니다.
systemd가 있는 Linux 시스템은 로그를 /var/log/journal 디렉터리에 기록합니다. Linux 디렉터리 구조를 기억한다면 /var는 시스템 로그가 저장되는 곳입니다.
less 명령을 사용하여 로그 파일을 수동으로 보거나 Journalctl 명령을 사용할 수 있습니다. 최신 로그를 모두 보려면 reverse 옵션과 함께 명령을 사용하세요.
journalctl -r
시스템 저널 로그 지우기
먼저 du 명령을 사용하여 저널 로그가 차지하는 공간을 확인합니다.
du -sh /var/log/journal/
동일한 작업에 Journalctl 명령을 사용할 수도 있습니다.
journalctl --disk-usage
두 명령 모두 대략 동일한 결과를 제공해야 합니다.
abhishek@linux-console:~$ journalctl --disk-usage
Archived and active journals take up 1.6G in the file system.
abhishek@linux-console:~$ sudo du -sh /var/log/journal/
1.7G /var/log/journal/
이제 저널 로그가 차지하는 공간을 알았으므로 로그를 지울지 여부를 결정할 수 있습니다. 저널 로그를 지우기로 결정한 경우 이를 수행하는 몇 가지 방법을 보여 드리겠습니다.
물론 rm 명령을 사용하여 로그 폴더의 파일을 삭제할 수 있지만 권장하지는 않습니다. Journalctl 명령은 오래된 로그를 처리하는 적절한 방법을 제공합니다.
가장 먼저 해야 할 일은 저널 파일을 회전하는 것입니다. 그러면 현재 활성 저널 로그가 아카이브로 표시되고 새로운 새 로그가 생성됩니다. 선택 사항이지만 그렇게 하는 것이 좋습니다.
sudo journalctl --rotate
이제 오래된 저널 로그를 지우는 세 가지 방법이 있습니다. 특정 시간보다 오래된 로그를 삭제하거나, 전체 로그 크기가 미리 정의된 디스크 공간으로 제한되도록 오래된 로그 파일을 삭제하거나, 로그 파일 수를 제한합니다. 세 가지 방법을 모두 사용하는 방법을 살펴보겠습니다.
1. x일보다 오래된 저널 로그 지우기
로그는 감사 목적으로 중요하므로 모든 로그를 동시에 삭제하면 안 됩니다. 이틀 동안의 로그 기록만 유지하고 싶다고 가정해 보겠습니다. 2일이 지난 모든 항목을 삭제하려면 다음 명령을 사용하십시오.
sudo journalctl --vacuum-time=2d
출력은 다음과 같습니다.
Vacuuming done, freed 1.6G of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c
제공 기간을 2시간과 같은 시간, 2분과 같은 분, 2초와 같은 초 단위로 변경할 수도 있습니다. 더 큰 시간 단위를 원한다면 2주, 2개월도 가능합니다.
2. 로그를 특정 크기로 제한
또 다른 방법은 로그 크기를 제한하는 것입니다. 저널 로그가 차지하는 디스크 공간이 지정한 크기보다 작아질 때까지 저널 로그 파일이 삭제됩니다.
sudo journalctl --vacuum-size=100M
이렇게 하면 로그 크기가 약 100MB로 줄어듭니다.
Vacuuming done, freed 40.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.
G를 사용하면 GB, M을 사용하면 MB, K를 사용하면 KB 등으로 크기를 지정할 수 있습니다.
3. 로그 파일 수 제한
세 번째 방법은 로그 파일 수를 제한하는 것입니다. Journalctl에는 일반적으로 시스템 및 사용자에 대한 로그 파일이 있습니다. 로그가 오래되면 다양한 파일에 보관됩니다.
보관 로그 파일 수를 제한할 수 있습니다. 5개의 로그 파일만 갖고 싶다고 가정해 보겠습니다.
journalctl --vacuum-files=5
지정된 개수의 로그 파일만 남기고 오래된 보관 로그 파일을 제거합니다.
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/system@d9fbc18533be4cb69483adf2a61505ac-00000000001e0bba-00059745988c0982.journal (8.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/user-1000@f571e91e5c6748a8a74666a448df78dd-00000000001e21d4-00059747a2ebd5a3.journal (48.0M).
Deleted archived journal /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c/system@d9fbc18533be4cb69483adf2a61505ac-00000000001e2414-00059747a32024d0.journal (48.0M).
Vacuuming done, freed 104.0M of archived journals from /var/log/journal/1b9ab93094fa4978beba80fd3c48a18c.
오래된 로그 파일 자동 지우기 [명령줄에 대한 중급 지식 필요]
방금 수행한 작업으로 지금은 로그 파일이 정리됩니다. 한 달 안에 로그가 다시 증가합니다. 위에서 설명한 방법 중 하나를 사용하여 수동으로 청소할 수 있습니다. 하지만 이는 지루한 작업이므로 정기적으로 수행하는 것을 기억하지 못할 수도 있습니다.
좋은 점은 오래된 로그 파일을 자동으로 처리하도록 systemd를 구성할 수 있다는 것입니다.
Journalctl에는 /etc/systemd/journald.conf에 구성 파일이 있습니다. 주석 처리된 설정이 있습니다. 주석 처리된 행은 기본적으로 해당 설정 매개변수의 기본값을 나타냅니다(주석 처리된 경우에도).
이러한 기본 설정 중 일부를 변경하여 로그 파일을 자동으로 정리할 수 있습니다.
다음 설정을 변경하고 싶습니다.
SystemMaxUse
로그가 차지할 수 있는 최대 디스크 공간
SystemMaxFileSize
INDIVIDUAL 로그 파일의 최대 크기
SystemMaxFiles
최대 로그 파일 수
주목!
구성 파일을 편집할 때는 주의해야 합니다. conf 파일을 편집하는 동안 어리석은 실수를 하지 않도록 Vim, Emacs 또는 Nano와 같은 터미널 기반 텍스트 편집기를 사용하는 데 능숙해야 합니다.
먼저 구성 파일을 백업하는 것이 좋습니다.
cp /etc/systemd/journald.conf /etc/systemd/journald.conf.back
이제 사용하려는 설정의 주석 처리를 제거해야 합니다(줄 시작 부분의 # 제거). 예를 들어, 로그 파일이 차지하는 최대 디스크 공간을 250MB로 제한하고 싶습니다.
이 구성 파일을 편집하려면 Vim이나 다른 터미널 기반 편집기를 사용해야 합니다. 파일을 편집한 후의 모습은 다음과 같습니다.
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.
[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=1000
SystemMaxUse=250M
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
구성 파일을 편집한 후에는 변경 사항을 로드해야 한다는 점에 유의하세요.
sudo systemctl restart systemd-journald
Journald.conf 파일을 사용하면 Journalctl 설정을 더욱 세부적으로 조정할 수 있습니다. 보고 싶은 로그 수준(정보, 디버그, 오류 등)을 설정할 수도 있습니다. 해당 설정을 변경하려는 경우에도 귀하에게 달려 있습니다.
시스템 저널 로그 파일을 지우는 이 팁이 마음에 드셨으면 좋겠습니다. 질문이나 제안 사항이 있으면 아래에 의견을 남겨주세요.