前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >标准化启动脚本的构建与cronolog的日志分割

标准化启动脚本的构建与cronolog的日志分割

作者头像
明哥的运维笔记
发布2019-01-30 10:01:51
8890
发布2019-01-30 10:01:51
举报
文章被收录于专栏:运维笔记

[先上标准化启动脚本:]

代码语言:javascript
复制
#!/bin/bash
# chkconfig: 2345 93 11
# description:$INS_APP Server
. /etc/rc.d/init.d/functions
JAVA_HOME="/usr/local/jdk"
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:$JAVA_HOME/bin
export PATH

INS_APP="storm"
KEY="ice"
BASE_DIR="/data/www/apps/$INS_APP"
LOG_DIR="/data/log/$INS_APP"
LOG_FILE="/data/log/$INS_APP/$INS_APP.log"
prog=$INS_APP
pid_file=/var/run/$INS_APP.pid

function app_action(){
APP_PORT=$(netstat -tpln |grep $KEY |grep -v grep |awk '{print $4}' |awk  -F':' '{print $NF}')
APP_PID=$(ps aux |grep $KEY |grep -v grep  |awk '{print $2}')
}

[[ -d /data/log/$INS_APP/ ]]  || mkdir -p /data/log/$INS_APP/

start() {

#       JAVA_OPTS="-Xms1536M -Xmx1536M -Xss1M -XX:MaxPermSize=256M -XX:+UseParallelGC"
        if [[ ! -d  $BASE_DIR  ]];then
        echo "$INS_APP Directorg: $BASE_DIR isn't exist,exit!"
        exit
        fi 
        cd $BASE_DIR
        #nohup icebox --Ice.Config=config.icebox   >> $LOG_FILE 2>&1 &  
        nohup icebox --Ice.Config=config.icebox  2>&1 | /usr/local/sbin/cronolog  $LOG_DIR/$INS_APP.%Y-%m-%d.log &
        ret=$?
        if [ $ret -eq 0 ]; then
                action $"Starting $INS_APP: " /bin/true
                app_action
                echo $APP_PID  > $pid_file 
        else
                action $"Starting $INS_APP: " /bin/false
        fi
        chmod 755 /etc/init.d/$INS_APP  
        chkconfig --add   $INS_APP
        chkconfig --level 3  $INS_APP    on            
}

stop() {

        app_action
        if [[  -z $APP_PID  ]];then
        action $"Stopping $INS_APP: " /bin/false
        exit  
        fi   
        for i in $APP_PID
        do  
        kill -9 $i
        done 

        ret=$?
        if [ $ret -eq 0 ]; then
                action $"Stopping $INS_APP: " /bin/true
                rm -f $pid_file
        else
                action $"Stopping $INS_APP: " /bin/false
        fi
}

restart() {

        stop
        sleep 2
        start
}

case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        status)
        status $prog         
                ;;
        restart)
                restart
                ;;
        *)
                echo $"Usage: $0 {start|stop|status|restart}"
                exit 1
esac

[  cronolog是[一款日志分割软件,以上范例日志文件将按天分割,每天产生一个新的日志文件。]

代码语言:javascript
复制
 nohup icebox --Ice.Config=config.icebox  2>&1 | /usr/local/sbin/cronolog  $LOG_DIR/$INS_APP.%Y-%m-%d.log &

 cronolog源码包安装: https://pan.baidu.com/s/1ntiF90X

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档