Как препятствовать тому, чтобы журналы стали слишком большими?

У меня есть cronjob, который запускает некоторые скрипты Python, и они генерируют значительный файл журнала. Как я препятствую тому, чтобы они стали настолько большими? Это было бы прекрасно, если бы файл был удален, после того как это поразило определенный размер. Поскольку каждые несколько дней, файл составляет 50 МБ теперь, но становится намного больше и берет навсегда, чтобы загрузить и проанализировать ошибку на медленном соединении с интернетом. Я действительно только хочу видеть, что последние 1 000 строк, которые будут видеть, где сценарий пошел не так, как надо.

Я знаю, что мог кодировать что-то, чтобы сделать это, но я просто задавался вопросом, имел ли Linux что-то, о чем я не знал. Я предполагаю, что большие файлы журнала являются типичной проблемой. Слова благодарности.

2
задан 23 March 2014 в 09:26

3 ответа

Обычно необходимо только зарегистрировать действие, о котором Вы заботитесь и должны настроить программу, чтобы быть менее подробными, если это возможно.

Как предложено, использование logrotate является обычным способом иметь дело с файлами журнала. Но вместо того, чтобы добавить содержание к /etc/logrotate.conf необходимо добавить собственное задание к /etc/logrotate.d/, иначе необходимо было бы посмотреть на большее количество diffs конфигурационных файлов во время обновлений версии.

Вот пример, который я создал для сценария PHP:

/var/log/some-php-app/*.log {
        daily
        rotate 10
        delaycompress
        compress
        notifempty
        missingok
}
  • /var/log/some-php-app/*.log - Путь, где файл (файлы) журнала расположен, и это - имя. Как Вы видите, можно также использовать подстановочные знаки для применения правила больше чем к одному файлу журнала.
  • ежедневно - ежедневно Поворачивает файлы журнала. Альтернативы: каждый час, еженедельно, ежемесячно, ежегодно, maxsize, maxage
  • поверните количество - Файлы повернуты времена количества прежде чем быть удаленным или отправлены по почте к адресу, указанному в почтовой директиве.
  • delaycompress - Откладывает сжатие предыдущего файла журнала к следующему циклу вращения.
  • сжатие - Сжатия старые версии файлов журнала с gzip. Можно использовать zless вместо less просмотреть файлы.
  • notifempty - Не поворачивает журнал, если это пусто.
  • missingok - Переходит к следующему, поворачивают задание, не выпуская сообщение об ошибке, когда файл журнала отсутствует.

Взгляните на logrotate страницу справочника для большего количества опций.

4
ответ дан 27 August 2019 в 20:49

Вы захотите установить размер в/etc/logrotate.conf

, файл существует по умолчанию и, ежедневно работал. Единственная вещь, которую необходимо будет сделать, добавляют некоторые дополнительные параметры к logrotate.conf.

/path/to_big.log {
        size 1k
        create 700 user group
        rotate 1
}

В этом примере мы определяем путь к нашему журналу, размер, который мы хотим ограничить его, полномочия для заменяющего журнала, и сколько копий для хранения. Вращайтесь 1, сохранит одну копию.

1
ответ дан 27 August 2019 в 20:49

Если Ваши журналы становятся очень быстрыми, Вы не можете ожидать крона для выполнения logrotate один раз в день, как значение по умолчанию после установления предела размера, как упомянуто в предыдущем ответе, можно сделать символьную ссылку в/etc/cron.hourly к logrotate заданию крона в/etc/cron.daily с этой командой:

sudo ln -s /etc/cron.daily/logrotate /etc/cron.hourly/

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

1
ответ дан 27 August 2019 в 20:49

Другие вопросы по тегам:

Похожие вопросы: