Я хочу написать сценарий оболочки, чтобы остановить мои текущие запущенные приложения jboss (на одном сервере может работать более одного jboss) и переименовать соответствующие файлы журнала, созданные в каталоге журнала. Переименованный файл должен содержать время, когда выполняется сценарий, что поможет идентифицировать этот файл. Пожалуйста, помогите мне ...
cmiiw, я думаю, вы просто включаете logrotate на jboss-log4j.xml
<pre><code>
<!-- A time/date based rolling appender -->
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="${jboss.server.log.threshold}"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n"/>
</layout>
</appender>
</pre></code>
Вы можете использовать logrotate, как предлагает Игнасио. Например, следующий фрагмент конфигурации показывает, как выполнить лог-ротацию файла системных сообщений и перезагрузить процесс syslogd. Вы можете использовать prerotate и postrotate для выполнения сценариев / команд до и после вращения файла журнала соответственно.
/var/log/messages {
rotate 5
weekly
postrotate
/usr/bin/killall -HUP syslogd
endscript
}
Для получения дополнительной информации проверьте man logrotate
.