Рейтинг:1

Вращение не выполняется, когда размер файла достигает определенного порога

флаг us

У меня есть следующие конфигурации в /etc/logrotate.d/rsyslog:

/var/журнал/системный журнал
{
        повернуть 7
        размер 1G
        отсутствует
        непустой
        задержка сжатия
        компресс
        постротировать
          invoke-rc.d rsyslog повернуть >/dev/null
        эндскрипт
}

Насколько я понимаю, я настроил это так, если /var/журнал/системный журнал достигает 1G по размеру он будет вращаться сам. Также система будет удерживать 7 вращений.

При тестировании я сделал так:

кошка /dev/null > /var/log/syslog
base64 /dev/urandom | голова -c 999999999 > /var/log/syslog
регистратор -s "привет"

Затем я сделал это:

ls -las /var/log/syslog*
976568 -rw-r----- 1 системный журнал adm 1000000072 28 июля 19:11 /var/log/syslog

Он показывает размер файла как 1.000000728 ГБ разве он не должен был вращаться сам?

При применении конфигураций я сделал systemctl перезапустить rsyslog

Рейтинг:1
флаг cz

Logrotate использует традиционные единицы, а не единицы СИ для K, M, G и т. д. Это буквально означает цитату из исходного кода: 1024 * 1024 * 1024, или 1073741824 байт.

justanotheruser1019 avatar
флаг us
так что мне просто нужно объявить его как «размер 1073741824», правильно?
Michael Hampton avatar
флаг cz
@jk22721019 Ты уже это сделал! Что вам нужно сделать, так это записать больше данных в файл журнала.
justanotheruser1019 avatar
флаг us
О, я вижу. лол хаха
justanotheruser1019 avatar
флаг us
я сделал `logger -s "hello"`, и теперь размер говорит `1073741883` для `ls -las /var/log/syslog` и нет ротированных журналов...
justanotheruser1019 avatar
флаг us
я вижу это... 28 июля 19:37:43 rsyslogd: неизвестное приоритетное имя "" [v8.1901.0] 28 июля, 19:37:43.
Michael Hampton avatar
флаг cz
@ jk22721019 Вы знаете, что logrotate работает только ночью, верно?
justanotheruser1019 avatar
флаг us
Ой. Я понимаю. Так что, может быть, мне нужно настроить задание cron так, чтобы оно запускалось каждые несколько минут, чтобы оно могло правильно подобрать системный журнал, превышающий определенный размер, и запустить logrotate вместо того, чтобы ждать ночи?
justanotheruser1019 avatar
флаг us
Я думал, что если убрать «почасовой» или «ежедневный», он отреагирует немедленно. очевидно нет.
Michael Hampton avatar
флаг cz
@ jk22721019 Вы, конечно, можете это сделать, но если вы действительно создаете такое огромное количество журналов в реальности, вам следует серьезно подумать (1) действительно ли нужны журналы, и (2) какой-то другой подход к их хранению. В любом случае, это далеко от вашего вопроса.
justanotheruser1019 avatar
флаг us
Я ценю помощь. Единственная проблема, с которой я столкнулся сейчас, это то, что когда я выполняю вручную для целей тестирования `sudo /etc/cron.daily/logrotate`, он отлично вращается, но я не могу записать какие-либо данные в новый файл системного журнала. Я изменил сценарий logrotate `chown syslog:adm syslog`, и он очень привередлив — кажется, он позволяет писать через минуту или две после создания. Любые идеи?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.