настройка и выполнение logrotate

Я пытаюсь настроить logrotate для поворота и удаления файлов журнала каждый день в полночь, но никогда не использовали его раньше. Итак: (a) я хочу подтвердить, что моя конфигурация верна, и (b) мне нужна помощь в автоматизации ее ежедневного выполнения в полночь.

мое программное обеспечение создает большой файл журнала в /abs/path/to/log/myapp-log.txt. Вот что бы мне хотелось, чтобы произошло:

  • отметка времени для каждого файла журнала с расширением даты в его имени
  • есть только 1 файл журнала в /abs/path/to/log/ в любой момент времени; поэтому каждый раз, когда бревно вращается и создается новый файл журнала, удалить старый

logrotate.conf:

/abs/path/to/log/myapp-log.txt {
    daily
    copytruncate
    create 700 myUser myGroup
    dateext
    maxage 1
    missingok
}

несколько вещей, в которых я не уверен:

  • нужно ли указывать daily если я указываю maxage на 1?
  • что именно missingok делаешь? Что-то об игнорировании системного предупреждения, если файл журнала не существует? Что произойдет, если я не укажу missingok и файл журнала не там?
  • мне нужно copytruncate если я указываю daily/maxage 1? Эти три параметра кажутся немного избыточными, но не уверены, какую роль каждый из них играет.

во-вторых, как я могу гарантировать, что это будет выполняться каждый день в полночь? Крон? Я спрашиваю только потому, что читаю где-то это /etc/cron.daily/logrotate запускается автоматически каждый день, но не уверен, как это можно настроить. Спасибо заранее.

15
задан SeinopSys
22.01.2023 15:21 Количество просмотров материала 3487
Распечатать страницу

1 ответ

  1. мне нужно указать daily, если я указываю maxage 1?

    да, вам нужен ежедневно как вы хотите, чтобы этот раздел, чтобы выполнить каждый день. Это управление как частотой выполнения раздела, пока maxage контроль, как долго повернутые файлы хранятся. Это 2 разные вещи.

  2. что именно делает missingok?

    missingok значит logrotate будет не жаловаться / генерировать ошибку, если файл журнала для ротации не существует. Если это не указано и файл журнала, предназначенный для ротации, отсутствует, logrotate создаст журнал ошибок.

  3. мне надо copytruncate если я выбрав день/maxage 1?

    If copytruncate работает для вас сейчас, не меняйте его. Это относится к оригинальному файлу журнала

    copytruncate поручить logrotate создать копию оригинала файл (i.e повернуть исходный файл журнала) и усекает оригинал файл с нулевым размером байт. Это помогает соответствующей службе, которая принадлежит в этот файл журнала можно записать соответствующий файл.

  4. запустить logrotate в середине ночи

    есть 2 способа сделать это.

    • Способ 1 - изменить, Когда ежедневно cron выполняется

      ищем следующие строки в / etc / crontab

      25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
      

      изменить 25 6 (означает 6:25 утра), чтобы 0 0. Это тоже изменение ALL ежедневная работа cron время начала до середины ночи.

    • Способ 2 - Use custom crontab line

      переместить logrotate из ежедневного расписания хрона по умолчанию

      mv /etc/cron.daily/logrotate /etc/logrotate.cronjob
      

      создать пользовательское задание. Добавьте следующую строку в / etc / crontab

      0 0 * * * root /etc/logrotate.cronjob
      
10
отвечен John Siu 2023-01-23 23:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх