内置Tomcat的jar包在Centos上的部署脚本

项目部署路径:

        新建logs,用于存放日志。lib目录用于存放jar。bin目录用于存放启动脚本。

       如下图所示:

lib目录下:

 

bin目录下 

 以restart-admin-post.sh为例

#!/bin/bash
# *******************************
# example
#     cd bin/
#     sh debug.sh
# ********************************

kill -9 $(netstat -lnp|grep 8086 | awk '{print $7}' | awk -F"/" '{print $1}')
cd /data/youzheng-scanqrcode-signseal/lib
chmod +755 platform-admin-post.jar
source /etc/profile
#cd ..
#ulimit -n 524280
cd /data/youzheng-scanqrcode-signseal/logs
JAVA_OPTS=""
nohup java -jar /data/youzheng-scanqrcode-signseal/lib/platform-admin-post.jar -Xms512M -Xmx512M -Xss256k $JAVA_OPTS -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext >> /data/youzheng-scanqrcode-signseal/logs/platform-admin-post-nohup.out 2>&1 &

kill -9 $(netstat -lnp|grep 8086 | awk '{print $7}' | awk -F"/" '{print $1}')

表示查找端口8086对应的进程,然后 kill掉 8086对应的进程

nohup java -jar /data/youzheng-scanqrcode-signseal/lib/platform-admin-post.jar -Xms512M -Xmx512M -Xss256k $JAVA_OPTS -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext >> /data/youzheng-scanqrcode-signseal/logs/platform-admin-post-nohup.out 2>&1 &

表示:以nohup的方式启动,将输出的日志 输出到 platform-admin-post-nohup.out文件中,而不是nohup.out中 没有此文件就自动新建。最后 一个&表示 以后台运行的方式启动。

 nohup java -jar /data/youzheng-scanqrcode-signseal/lib/platform-admin-post.jar -Xms512M -Xmx512M -Xss256k $JAVA_OPTS -Djava.ext.dirs=$JAVA_HOME/jre/lib/ext &

如果启动方式改为这种 那么就会在

cd /data/youzheng-scanqrcode-signseal/logs 目录下生成nohup.out文件 用于存储日志。

如果其他jar包的启动也是这样的话,大家的日志都输入到同一个nohup.out文件中。

日积月累就会造成nohup.out文件太大。

下面讲解把nohup.out文件如何按天进行存储。

在/data/youzheng-scanqrcode-signseal/bin目录下,新建split_logs.sh文件。(sh脚本文件,最好通过touch xx.sh建立,不要通过windows系统建立,然后上传,否则会出现各种奇怪的问题。

split_logs.sh内容如下。

#!/bin/bash
#获取前一天的日期
current_date=`date -d "-1 day" "+%Y%m%d"`
#复制文件,以每天的日志大小切分
cp /data/youzheng-scanqrcode-signseal/logs/nohup.out /data/youzheng-scanqrcode-signseal/logs/log_${current_date}.log
#最后清空原文件的内容
cat /dev/null > /data/youzheng-scanqrcode-signseal/logs/nohup.out
#清除logs目录下15天前旧日志文件
find /data/youzheng-scanqrcode-signseal/logs/ -mtime +15 -name 'log_*' -exec rm -rf {} \;

#修改文件的权限

chmod 777 split_logs.sh  

 设置定时任务,按每日凌晨零点 执行split_logs.sh 脚本

​[root@iZ2zeddfx87fw4m4dlxu8dZ bin]# crontab -e
0 0 * * * root /data/youzheng-scanqrcode-signseal/bin/split_logs.sh 

#上面这种方式配置好后,发现定时任务没有启动。

#上面的配置是针对于当前登录用户的。但是没有生效

采用下面的方法配置定时任务:vim /etc/crontab

root@iZ2zeddfx87fw4m4dlxu8dZ data]# vim /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0 0 * * * root /data/youzheng-scanqrcode-signseal/bin/split_logs.sh

上面这种配置方式会立即生效,不需要重启定时任务服务功能。

查看定时任务进程状态: 

 

#表示每日 凌晨零点执行 

0 0 * * * root /data/youzheng-scanqrcode-signseal/bin/split_logs.sh 

#表示每5分钟运行一次命令 

*/5 * * * * root /data/youzheng-scanqrcode-signseal/bin/split_logs.sh 

注意:Linux下的crontab表达式和cron表达式是不同的。 

 手动执行 split_logs.sh脚本效果

sh split_logs.sh

将nohup.out中全部内容复制到log_20221225.log文件中了,自身已清空内容。 

删除日志的命令,是以文件的修改时间为准,删除15天之前的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值