1
0
Fork 0
digitalstudium.com/content/en/linux-lifehacks/linux-how-to-limit-var-log-...

63 lines
2.3 KiB
Markdown
Raw Normal View History

2023-03-08 15:12:15 +00:00
---
title: "Linux: how to limit /var/log folder size"
2023-04-23 14:56:27 +00:00
category: linux-lifehacks
filename: linux-how-to-limit-var-log-size
date: 2022-06-16
2023-03-08 15:12:15 +00:00
---
Sometimes the `/var/log` folder grows so large that it causes a shortage of disk space. How to limit the size of this folder? By following the two steps in this article, you can control the size of the `/var/log` folder.<!--more-->
### Step 1. Limiting the size of journald logs
The logs of all systemd services are added to the `/var/log/journal/` folder by the `journald` service. To set the size limit for this folder, run the following commands:
```bash
sudo bash -c 'echo "SystemMaxUse=100M" >> /etc/systemd/journald.conf'
sudo systemctl restart systemd-journald
```
Instead of the `100M` size, you can specify any other size, in `K, M, G, T` units. After the above commands, you can verify that the size of the folder `/var/log` has become the specified size using the command:
```bash
du -sh /var/log/journal/
```
### Step 2. Limiting the number of log files stored by logrotate
Logrotate rotates almost all log files in the `/var/log` folder every day. For example, if I type the command `ls /var/log/kern*`, then I will see that in addition to the file `/var/log/kern.log` I have 4 more files stored that logrotate saved:
```bash
ls /var/log/kern*
```
```plaintext
/var/log/kern.log /var/log/kern.log.2.gz /var/log/kern.log.4.gz
/var/log/kern.log.1 /var/log/kern.log.3.gz
```
To limit the number of log files, edit the file `/etc/logrotate.d/rsyslog`. Looking at the contents of the `/etc/logrotate.d/rsyslog` file, we can see that the default value of the `rotate` parameter is `4`:
```bash
cat /etc/logrotate.d/rsyslog
```
```plaintext
/var/log/syslog
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
```
You can change `4` to some other value, such as `1`, so that only one file is stored. In the `/etc/logrotate.d/` folder you will also find many other configuration files related to other log files, where you can also change the `rotate` setting.