Имеется AWS EC2 с Debian с
logrotate
.
Закончилось место на корневом разделе, начали искать причину, обнаружилось, что накопились файлы вида
./var/log/syslog.N.gz
При этом по-умолчанию logrotate
создаёт файл настроек для syslog
:
root@monitoring-dev:~# cat /etc/logrotate.d/syslog
Ansible managed
/var/log/syslog {
size 10M
rotate 1
daily
...
}
Т.е. должен оставаться syslog
+ syslog.1
, а вместо этого имеем:
root@monitoring-dev:~# ll /var/log/ | grep syslog
-rw-r----- 1 root adm 11925 Oct 9 09:26 syslog
-rw-r----- 1 root adm 361150 Oct 9 06:25 syslog.1
-rw-r----- 1 root adm 7712 Oct 8 06:25 syslog.2.gz
-rw-r----- 1 root adm 7562 Oct 7 06:25 syslog.3.gz
-rw-r----- 1 root adm 7832 Oct 6 06:25 syslog.4.gz
-rw-r----- 1 root adm 7720 Oct 5 06:25 syslog.5.gz
-rw-r----- 1 root adm 7641 Oct 4 06:25 syslog.6.gz
-rw-r----- 1 root adm 8072 Oct 3 06:25 syslog.7.gz
Проверяем — запускаем logrotate
с --debug
:
root@monitoring-dev:~# logrotate -d /etc/logrotate.conf
reading config file /etc/logrotate.conf
error: /etc/logrotate.conf:5 unknown group 'syslog'
removing last 0 log configs
unknown group ‘syslog’
Собственно — вот и ошибка.
Возникает потому, что у Debian группы syslog
нет, но есть группа adm
, которая является группой владельцев логов по-умолчанию.
Проверяем /etc/logrotate.conf
:
# Ansible managed # see "man logrotate" for details weekly su root syslog ...
И проверяем существующие в системе группы:
root@monitoring-dev:~# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:admin
...
Меняем syslog
на adm
:
# Ansible managed # see "man logrotate" for details weekly su root adm ...
Проверяем ещё раз:
root@monitoring-dev:~# logrotate -d /etc/logrotate.conf
reading config file /etc/logrotate.conf
including /etc/logrotate.d
reading config file apt
reading config file certbot
reading config file chrony
reading config file daemonlog
reading config file dpkg
reading config file exim4-base
reading config file exim4-paniclog
reading config file nginx
reading config file rsyslog
reading config file syslog
reading config file unattended-upgrades
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries
...
Готово.