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

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 内置Tomcat的jar包在Centos上的部署脚本,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

项目部署路径:

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

如下图所示:

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

lib目录下:

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

bin目录下

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

以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

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

查看定时任务进程状态:

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

#表示每日 凌晨零点执行

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文件中了,自身已清空内容。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/142704.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!