Как исправить удаление catalina.out?
Я не мог перезапустить веб-сервер Tomcat. Но catalina.out получить очень большой. Я попытался удалить на тестовом сервере и создал новый пустой. Но Tomcat больше не пишет в новом catalina.out. Как правильно удалить / создать пустой новый?
4 ответа
Если вы используете Gnu/Linux или Mac OS X, вы можете просто сделать:
echo "" > catalina.out
или даже короче
> catalina.out
Для меня
echo "" > catalina.out
или же
sudo echo "" > catalina.out
не работал, так как файл был создан с правами суперпользователя / другого пользователя
sudo truncate -s 0 catalina.out
работал на меня. здесь -s для размера, и я устанавливаю размер файла на 0
В базу Tomcat устанавливает, catalina.out
обычно является результатом перенаправления stdout/stderr через скрипт запуска Tomcat.
Если вы запускаете Tomcat в системе Unix и удаляете файл во время работы Tomcat, проблема заключается в том, что процесс все еще будет иметь дескриптор, открытый для этого файла, и продолжит запись в него. Поэтому решение состоит в том, чтобы использовать программу, предназначенную для обработки таких случаев. Например, logrotate (который является стандартным практически во всех дистрибутивах Linux).
Когда используется сервер, вполне нормально, что использование диска увеличивается по мере накопления журналов в файле.
Если файл удален после остановки, он создаст новый после запуска и запишет в него. Но в вашем случае, поскольку он был удален во время работы, он удерживает ссылку на файл и записывает в удаленный файл. Вы можете избавиться от этого, перезапустив
tomcat
сервер.
На самом деле вы можете очистить журнал файла, не останавливая tomcat, с помощью команды ниже.
sudo cat /dev/null > /opt/tomcat/apache-tomcat-9.0.37/logs/catalina.out
Хранить
catalina.out
журналы меньшего размера и резервные копии старых журналов можно использовать одним из следующих способов:
Вы можете использовать приведенную выше команду и добавить ее в
CronScheduler
запускать ежедневно/еженедельно/ежемесячно или ежегодно по желанию.Использовать
logrotate
инструмент вLinux
. Это инструмент командной строки для управления журналами в Linux. Это может чередовать файлы журналов при различных условиях. В частности, мы можем чередовать файлы журналов с фиксированной продолжительностью или если файл вырос до определенного размера.Вы можете нажать здесь для получения дополнительной информации об этом.