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

Я запускаю Ubuntu 14.04. У меня есть этот проект направляющих, и мои журналы взрываются из-под контроля мудрый размером...

myuser@myapp:~$ ls -al /home/rails/myapp/log/
total 3118220
drwxr-xr-x  2 rails rails       4096 Jul  3 22:31 .
drwxr-xr-x 15 rails rails       4096 Sep 21 17:21 ..
-rw-rw-r--  1 rails rails          0 Jun 22 10:22 development.log
-rw-rw-r--  1 rails rails      14960 Jun  1 22:39 development.log.1
-rw-rw-r--  1 rails rails          0 Oct 22  2016 .keep
-rw-r--r--  1 rails rails  178464887 Oct 11 10:00 production.log
-rw-r--r--  1 rails rails    8615654 Jul  3 22:31 production.log.1
-rw-r--r--  1 rails rails  640621243 Jun 29 13:16 production.log.2.gz
-rw-rw-r--  1 rails rails 2016391330 Oct 11 10:09 sidekiq.log
-rw-rw-r--  1 rails rails  348853619 Jul  3 22:31 sidekiq.log.1
-rw-rw-r--  1 rails rails          0 Jul  3 22:31 test.log
-rw-rw-r--  1 rails rails      54246 Jul  3 22:31 test.log.1

Я установил это правило вращения журнала.. l

myuser@myapp:~$ cat /etc/logrotate.d/myapp
/home/rails/myapp/log/*.log {
    daily
    missingok
    compress
    notifempty
    rotate 12
    create
    delaycompress
    missingok
    su rails rails
    postrotate
        pkill -USR1 -u rails unicorn
    endscript
}

И все же вещи все еще не вращаются, несмотря на мое включение команды "навыка". Это теоретизировалось, что вещи не вращаются, потому что там выполняют процессы, например, ниже

myuser@myapp:~$ ps -elf | grep sidekiq
1 S rails    23864     1  1  80   0 - 254353 -     Oct10 ?        00:10:49 sidekiq 5.0.0 myapp [1 of 1 busy]

Я хотел бы знать, как повернуть мои журналы несмотря на рабочие процессы. Если это не проблема, то я был бы, точно так же, как, чтобы иметь журналы вращаются.

0
задан 11 October 2017 в 07:21

2 ответа

Рабочий процесс по всей вероятности препятствует тому, чтобы журналы были повернуты. У Вас есть две опции. Или перезапустите процесс (sidekiq) в постповорачивать разделе или используйте опция copytruncate усечь исходный файл, оперативный вместо того, чтобы удалить его.

1
ответ дан 2 November 2019 в 03:30

У Вас есть несколько опций.

  • Попытка повернуть журналы в рамках Вашего проекта Ruby при помощи стандарта библиотеки . Это минимизирует потерю данных, которая происходит в других опциях.
  • По некоторым причинам, если не возможный, то используют copytruncate директиву в конфигурации logrotate. Это будет работать, только если файл журнала открыт с флаг O_APPEND.
  • , Если ни одна из вышеупомянутых работ, в не постповорачивает раздел, перезапускают процесс или передают сигнал к Вашему сценарию, который обработает повторное открытие файлов журнала (так, чтобы Вы не перезапускали процесс)
0
ответ дан 2 November 2019 в 03:30

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

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