shell脚本启动项目最近的一个想法和实现

最近用shell脚本启动jar包发现原本的是这种

startup(){
  nohup java -jar $args "/root/paiyidai/lib/${app}" &
  tail -f nohup.out
}

但这样对于我们现有的项目会有一个问题就是nohup.out文件会越来越大,查找起来非常不方便,因为日志输出比较多,但是对于我们这个项目来说,这些日志又是有用的,于是我就改成了这种

startup(){
    nohup java -jar $args "/root/paiyidai/lib/${app}" > /dev/null 2>&1 &
    sleep 6
    ps -ef | grep java
}

这样的话不仅可以查看程序是否启动成功直接不让器输出到nohup.out里了 ,这时候只要解决日志的文件问题就行了这里用了logbook的配置文件里面配置了,500M分一个文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 second" debug="false">

    <property name="basedir" value="/root/paiyidai/logs"/>
    <!-- 负责写日志,控制台日志 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- 一是把日志信息转换成字节数组,二是把字节数组写入到输出流 -->
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n</Pattern>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!-- 文件日志 -->
    <!-- 滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将日志记录到其他文件 -->
    <appender name="LogFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${basedir}/paiyidai.log</file>
        <encoder>
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger - %msg%n</Pattern>
            <charset>UTF-8</charset>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${basedir}/paiyidai-%d{yyyy-MM-dd}.%i</fileNamePattern>
            <maxHistory>15</maxHistory>
            <maxFileSize>500MB</maxFileSize>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender >

    <!--
    - 根logger
    - level:设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。
    -       默认是DEBUG。
    -appender-ref:可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger
    -->

    <logger name="org.springframework" level="info"/>
    <root level="info">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="LogFile"/>
    </root>
</configuration>

这样只需要查看这里的日志文件就行了,然后再配合着一个检测磁盘文件是超90后删除超过二天的日志就完美的解决了这个问题

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值