一、啟動腳本編寫
#!/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 文件前提醒用戶