[리눅스] 기한이 지난 journalctl 로그 내용 지우기
journalctl 로그가 얼마 만큼의 용량을 차지하고 있는지는 "journalctl --disk-usage"로 볼 수 있다.
# journalctl --disk-usage
Archived and active journals take up 57.0M in the file system.
수동으로 5날이 지난 로그를 지우고 싶다면, 매개변수로 '--vacuum-time=5d'를 넣어 준다.
# sudo journalctl --vacuum-time=5d
Vacuuming done, freed 0B of archived journals from /var/log/journal.
Vacuuming done, freed 0B of archived journals from /run/log/journal/ec5ec1e8k0bb64b0509fd33e08a474b5.
Vacuuming done, freed 0B of archived journals from /run/log/journal.
Vacuuming done, freed 0B of archived journals from /var/log/journal/db2455fc97f671094dac231b367064ae.
아래 명령으로 20MB만 남기고 로그를 지울 수도 있다.
# sudo journalctl --vacuum-size=20M
/etc/systemd/journald.conf 파일의 내용을 고쳐서 journal 로그의 용량을 조절할 수도 있다.
[Journal]
SystemMaxUse=100M # 전체 로그 용량 제한 (500MB)
SystemKeepFree=1G # 언제나 비워 둘 디스크 용량 (1GB)
SystemMaxFileSize=20M # 개별 저널 파일의 최대 크기 (20MB)
MaxRetentionSec=5d # 최대 보관 기간 (5날)
Compress=yes # 닫힌 로그 파일 압축하기
그리고 journalctl 서비스를 다시 시작해 준다.
sudo systemctl restart systemd-journald
여기까지는 널리 알려져 있는 방법이다.
이렇게 했는데도 저널 로그의 옛 기록이 알아서 지워지지 않고 남아서 용량을 차지하기도 한다. 그럴 때에는 journald.conf 파일에 MaxFileSec에 적절한 값을 넣어 주고 journalctl 서비스를 다시 시작한다.
[Journal]
MaxFileSec=1d
MaxFileSec의 기본값은 1month(한 달)이다. MaxFileSec로 지정한 기간이 지나면 기록하던 파일이 닫히고 새 파일에 로그가 기록된다.(log rotate) MaxFileSec를 길게 잡으면 파일 하나에 오랜 기간의 로그들이 쌓이게 된다. journald.conf 파일에서 MaxRetentionSec 등을 지정한 효과가 나타나지 않고 '--vacuum-time'이나 '--vacuum-size'를 붙인 journalctl 명령으로도 로그를 수동으로 지울 수 없다면, MaxFileSec 값을 짧게 바꾸어서 로그 파일이 잘잘하게 나뉘게 하여 기한이 된 로그 내용들이 파일 단위로 지우게 할 수 있다.
![미리보기 그림 - [Question2Answer] [PHP] 한글이 들어간 글만 올릴 수 있게 하는 방법 (정규표현식, preg_match)](/image/4056_2.png)
덧글을 달아 주세요