123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #!/bin/sh
-
- # PS some OS location: /usr/sbin/cronolog OR /usr/local/sbin/cronolog OR /usr/bin/cronolog(ubuntu)
- CRONOLOG_PATH=/usr/local/sbin/cronolog
- if [ ! -f "$CRONOLOG_PATH" ]; then
- CRONOLOG_PATH=/usr/sbin/cronolog
- if [ ! -f "$CRONOLOG_PATH" ]; then
- CRONOLOG_PATH=/usr/bin/cronolog
- fi;
- fi;
-
- # 当前脚本所在目录
- SERVER=$(cd `dirname $0`; pwd)
- cd $SERVER
-
- # 文件全路径
- FULL_PATH=$SERVER/elastic-publish-service-1.0.0.jar
- # 程序的名字,不包括版本号,一般JAR包文件名为: $APP_SIGNATURE-1.0.0.jar ,备份用.
- APP_SIGNATURE=elastic-publish-service
- # 运行参数,如: -Xmx800m
- RUN_PARAM=
-
- # 组合命令,如果是Java,运行其他程序,改这里,如其他运行: ./frpc -c frpc.ini
- RUN_COMMAND="java -jar $FULL_PATH"
-
- # 运行程序的PID文件名
- PID_FILE_NAME=.pid
- # 程序运行日志文件
- APP_LOG_FILE=application.log
-
- # 检查文件是否存在,
- if [ ! -f "$FULL_PATH" ];then
- echo "file = [$FULL_PATH] not found..."
- exit 0
- fi
-
- NOHUP_PREFIX=logs/nohup_
-
- res=""
-
- if [ $# -eq 0 ] ; then
- echo "Usage: {start|stop|restart|fstop|np|nph|al|alh}"
- else
- case "$1" in
- start)
- # kill
- res=`ps aux | grep "$SERVER/$APP_SIGNATURE" | grep -v "grep" | awk '{print $2}'`
- if [ -n "$res" ];then
- kill -9 $(ps aux | grep "$SERVER/$APP_SIGNATURE" | grep -v "grep" | awk '{print $2}')
- sleep 1
- fi
- nohup $RUN_COMMAND $RUN_PARAM 2>&1 | $CRONOLOG_PATH ./$NOHUP_PREFIX%Y%m%d.log &
- echo $[$!-1] > $SERVER/$PID_FILE_NAME
- ;;
-
- stop)
- kill `cat $SERVER/$PID_FILE_NAME`
- rm -rf $SERVER/$PID_FILE_NAME
- ;;
-
- restart)
- kill `cat $SERVER/$PID_FILE_NAME`
- rm -rf $SERVER/$PID_FILE_NAME
- sleep 1
- nohup $RUN_COMMAND $RUN_PARAM 2>&1 | $CRONOLOG_PATH ./$NOHUP_PREFIX%Y%m%d.log &
- echo $[$!-1] > $SERVER/$PID_FILE_NAME
- ;;
-
- fstop)
- kill -9 `cat $SERVER/$PID_FILE_NAME`
- rm -rf $SERVER/$PID_FILE_NAME
- ;;
-
- np)
- # echo $2
- DATE=$(date +%Y%m%d)
- tail -f "./$NOHUP_PREFIX$DATE.log" | grep "$2"
- ;;
- nph)
- # echo $2
- DATE=$(date +%Y%m%d)
- tail -f "./$NOHUP_PREFIX$DATE.log" | perl -pe 's/('$2')/\e[1;31m$1\e[0m/g'
- ;;
- al)
- tail -f "./logs/$APP_LOG_FILE" | grep "$2"
- ;;
- alh)
- tail -f "./logs/$APP_LOG_FILE" | perl -pe 's/('$2')/\e[1;31m$1\e[0m/g'
- ;;
- backup)
- BACKUP_DATE=$(date +%Y%m%d%H%M)
- BACKUP_FOLDER=$SERVER/backup
- if [ ! -d "$BACKUP_FOLDER" ];then
- mkdir $BACKUP_FOLDER
- fi
- CU_BACK_UP=$BACKUP_FOLDER/$BACKUP_DATE
- if [ ! -d "$CU_BACK_UP" ];then
- mkdir $CU_BACK_UP
- fi
- cp $SERVER/$APP_SIGNATURE*.jar $CU_BACK_UP/
- cp -R $SERVER/lib $CU_BACK_UP/
- cp -R $SERVER/config $CU_BACK_UP/
- ;;
- rollback)
- if [ $# -eq 2 ] ; then
- ROLLBACK_FOLDER=$SERVER/backup/$2
- echo "rollback version:"$ROLLBACK_FOLDER
- if [ ! -d "$ROLLBACK_FOLDER" ];then
- echo "rollback version not found in file system. "$ROLLBACK_FOLDER
- exit 0
- fi
- rm -rf $SERVER/$APP_SIGNATURE*.jar
- rm -rf $SERVER/lib
- rm -rf $SERVER/config
- cp $ROLLBACK_FOLDER/$APP_SIGNATURE*.jar $SERVER
- cp -R $ROLLBACK_FOLDER/lib $SERVER/lib
- cp -R $ROLLBACK_FOLDER/config $SERVER/config
- else
- echo "not input rollback version"
- fi;
- ;;
- *)
- echo "Usage: {start|stop|restart|fstop|np|nph}"
- ;;
- esac
- fi;
- exit 0
|