启动脚本(带日志)
nohup java -jar system.jar --spring.profiles.active=prod &
启动脚本(不带日志)
nohup java -jar system.jar --spring.profiles.active=prod & > /dev/null 2>&1 &
关闭jar脚本
PID=$(ps -ef | grep system.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
windows启动jar脚本
java -jar system-1.5.jar --spring.profiles.active=prod
带日志脚本
#!/bin/sh
APP_NAME=product-service
#jar包路径
JAR_PATH='/tang'
#jar名称
JAR_NAME='demo.jar'
#日志路径
LOG_PATH='/tang/log'
#PID 代表是PID文件
PID=$JAR_NAME\.pid
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $JAR_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 ">>> $APP_NAME is already running PID=${pid} <<<"
else
nohup java -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH/$APP_NAME.log 2>&1 &
echo $! > $PID
echo ">>> start $APP_NAME successed PID=$! <<<"
fi
}
#停止方法
stop(){
#is_exist
pidf=$(cat $PID)
#echo "$pidf"
echo ">>> PID = $pidf begin kill $pidf <<<"
kill $pidf
rm -rf $PID
sleep 2
is_exist
if [ $? -eq "0" ]; then
echo ">>> PID = $pid begin kill -9 $pid <<<"
kill -9 $pid
sleep 2
echo ">>> $APP_NAME process stopped <<<"
else
echo ">>> $APP_NAME is not running <<<"
fi
}
#输出运行状态
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
exit 0
不带日志脚本
#!/bin/sh
APP_NAME=exam2-service
#jar包路径
JAR_PATH='/tang'
#jar名称
JAR_NAME='demo.jar'
#日志路径
LOG_PATH='/tang/log'
#PID 代表是PID文件
PID=$JAR_NAME\.pid
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $JAR_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 ">>> $APP_NAME is already running PID=${pid} <<<"
else
nohup java -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> /dev/null 2>&1 &
echo $! > $PID
echo ">>> start $APP_NAME successed PID=$! <<<"
fi
}
#停止方法
stop(){
#is_exist
pidf=$(cat $PID)
#echo "$pidf"
echo ">>> PID = $pidf begin kill $pidf <<<"
kill $pidf
rm -rf $PID
sleep 2
is_exist
if [ $? -eq "0" ]; then
echo ">>> PID = $pid begin kill -9 $pid <<<"
kill -9 $pid
sleep 2
echo ">>> $APP_NAME process stopped <<<"
else
echo ">>> $APP_NAME is not running <<<"
fi
}
#输出运行状态
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
exit 0
日志每天备份一份
1.启动脚本
#!/bin/sh
APP_NAME=com-service
#jar包路径
JAR_PATH='/tang'
#jar名称
JAR_NAME='api.jar'
# 日期
DATE_VALUE=`date +%Y_%m_%d`
#前一天日期
DATE_VALUE_D=`date -d "yesterday" +%Y_%m_%d`
#日志路径
LOG_PATH=$JAR_PATH/log-$DATE_VALUE.log
#PID 代表是PID文件
PID=$JAR_NAME\.pid
#使用说明,用来提示输入参数
usage() {
echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $JAR_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 ">>> $APP_NAME is already running PID=${pid} <<<"
else
nohup java -Xms256m -Xmx512m -jar $JAR_PATH/$JAR_NAME >> $LOG_PATH 2>&1 &
echo $! > $PID
echo ">>> start $APP_NAME successed PID=$! <<<"
fi
}
#停止方法
stop(){
#is_exist
pidf=$(cat $PID)
#echo "$pidf"
echo ">>> PID = $pidf begin kill $pidf <<<"
kill $pidf
rm -rf $PID
sleep 2
is_exist
if [ $? -eq "0" ]; then
echo ">>> PID = $pid begin kill -9 $pid <<<"
kill -9 $pid
sleep 2
echo ">>> $APP_NAME process stopped <<<"
else
echo ">>> $APP_NAME is not running <<<"
fi
}
#输出运行状态
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
}
# 输出实时日志
logs(){
tail -n 100 -f $LOG_PATH
}
#备份日志
backupLog(){
cp $LOG_PATH $JAR_PATH/log/log-$DATE_VALUE_D.log
#清空原始nohup.out中的内容
cat /dev/null > $LOG_PATH
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
"logs")
logs
;;
"backupLog")
backupLog
;;
*)
usage
;;
esac
exit 0
2.创建定时备份脚本 backupLog.sh
cd /tang/competition
sh ss.sh backupLog
3.创建定时任务
进入 /etc/crontab
添加定时命令
*/1 * * * * root /tang/backupLog.sh #每分钟执行一次
例如:
重启crond (部分版本的命令是: service crond restart )
systemctl restart crond.service