如何编写脚本来停止 jboss 并在 redhat 中重命名相应的日志文件

如何编写脚本来停止 jboss 并在 redhat 中重命名相应的日志文件

我想编写一个 shell 脚本来停止我当前正在运行的 jboss 应用程序(一个服务器中可能运行多个 jboss)并重命名日志目录中生成的相应日志文件。重命名的文件必须包含脚本运行时的时间,这将有助于识别该文件。请帮帮我...

答案1

您可以按照 Ignacio 的建议使用 logrotate。例如,以下配置片段显示了如何对系统消息文件进行日志轮转并重新加载 syslogd 进程。您可以分别使用 prerotate 和 postrotate 在轮转日志文件之前和之后执行脚本/命令。

/var/log/messages {
   rotate 5
   weekly
   postrotate
        /usr/bin/killall -HUP syslogd
   endscript
}

欲了解更多信息,请查看man logrotate

答案2

cmiiw 我认为你只需在 jboss-log4j.xml 上启用 logrotate

<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>

相关内容