xshell脚本启动JAR包-定时任务拆分日志

一、启动脚本编写

#!/bin/bash

#name:******service.sh;

#date:2020-12-02;

#此处修改脚本名称:

APP_NAME=jar包名.jar

#脚本菜单项

usage() {

#提示信息

echo "Usage: sh 脚本名称.sh [start|stop|restart|status]"

exit 1

}

#检查程序是否在运行

is_exist(){

  pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`

  #如果不存在返回1,存在返回0   

  if [ -z "${pid}" ]; then

  return 1

  else

    return 0

  fi

}

#启动方法

start(){

  is_exist

  if [ $? -eq 0 ]; then

    echo "Service ${JAR_NAME} is already running,it's pid = ${pid}. "

  else

    nohup Java -jar jar包名称 nohup.out &

  fi

}

#停止脚本

stop(){

is_exist

if [ $? -eq "0" ]; then

kill -9 $pid

else

echo "${APP_NAME} is not running"

fi

}

#显示当前jar运行状态

status(){

is_exist

if [ $? -eq "0" ]; then

echo "${APP_NAME} is running. Pid is ${pid}"

else

echo "${APP_NAME} is NOT running."

fi

}

#重启脚本

restart(){

stop

start

}

case "$1" in

"start")

start

;;

"stop")

stop

;;

"status")

status

;;

"restart")

restart

;;

*)

usage

;;

esac

二、分割脚本编写

# !/bin/bash

# 1.该shell命令用于按小时拆分nohup.out日志,并按服务名_年月日_时重新命名

# 2.把原有nohup.out文件置空

#path是绝对路径

path=/home/jar/***service

date=nohup_`date '+%Y%m%d_%H'.out`

#日志按小时拆分

#1.复制原有nohup.out并重新命名

#2.${path}是项目绝对路径,vbasic是项目名,nouhuplog是存放日志的目录

cp ${path}/nohup.out ${path}/nohuplog/jg-service_$date

#置空原有nohup.out文件

cp /dev/null ${path}/nohup.out

三、添加定时任务

编辑crontab文件:crontab -e

添加定时任务:

#每天5.30执行splitnohup.sh脚本进行日志拆分

30 5 * * * root  splitnohup.sh

保存完重启crond : service crond restart

-----------------------------------------------------------------------------------------------------------------------------------

做完以上一步就可以实现定时拆分nohup.out日志了!!!以后有升级再来哈哈哈!

注意:在Windows下标记好的脚本需要执行此命令,否则会出现报错 “build.sh   /bin/bash^M: 坏的解释器:没有那个文件或目录 ”

sed -i 's/\r$//' build.sh

crontab用法

crontab –e : 修改 crontab 文件,如果文件不存在会自动创建。

crontab –l : 显示 crontab 文件。

crontab -r : 删除 crontab 文件。

crontab -ir : 删除 crontab 文件前提醒用户

你可能感兴趣的:(xshell脚本启动JAR包-定时任务拆分日志)