Вчера я переместил 2 файла из /var /log /mongodb в другой каталог. Имена файлов: "mongod.log", "mongod.log.1" (только 2 файла в этом каталоге большого размера). В этот момент mongodb работал, я ожидал, что mongodb создаст новый mongod.log, но он этого не сделал. Затем я вручную создал mongod.log и сделал «chown mongodb: mongodb mongod.log», но файл все еще пуст.

Я не могу остановить mongodb, как я могу заставить mongodb снова войти в этот файл? Mongod.conf в порядке.

2 ответа2

1

Этот оригинальный файл все еще остается открытым mongod несмотря на то, что вы его переместили, и он останется тем файлом, в который он записывает данные, пока вы не остановите процесс mongod или не попробуете выполнить следующее:

  1. Удалите новый файл mongod.log который вы создали в /var/log/mongodb
  2. Переместите старый файл mongod.log обратно в /var/log/mongodb
  3. Выполните команду logRotate из оболочки mongo (при подключении к соответствующему mongod)

Примечание. В качестве альтернативы для шага 3 вы можете отправить kill -SIGUSR1 <pid of mongod> для достижения того же результата.

Как только это будет сделано, у вас будет новый файл mongod.log меньшего размера в папке вместе с урезанным предыдущим файлом (больше не записывается в). Точное имя зависит от версии, которую вы промываете, которую вы не упомянули, но теперь вы можете свободно перемещать большие файлы журналов в другой каталог (я бы порекомендовал сжать их, они легко сжимаются).

Если размер является постоянной проблемой, я бы порекомендовал сделать это как работу cron или аналогично, чтобы автоматизировать процесс в будущем.

0

Просто введите приведенную ниже команду во время выполнения, и вы увидите, что журналы записываются в указанный файл журнала:

db.adminCommand( { logRotate : 1 } )

Надеюсь это поможет !!!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .