springboot項(xiàng)目使用nohup將日志指定輸出文件過(guò)大問(wèn)題及解決辦法
springboot項(xiàng)目使用nohup將日志指定輸出文件過(guò)大解決辦法
假設(shè)目前有一個(gè)start.sh文件,內(nèi)容為以下:
#!/bin/sh jarname='app-gmt' pid=`ps aux | grep $jarname | grep -v grep | grep java | awk '{print $2}'` if [ "$pid" == "" ] then echo $jarname"進(jìn)程不存在, 直接啟動(dòng)"$jarname"系統(tǒng)" else echo "準(zhǔn)備殺掉"$jarnamed"進(jìn)程: "$pid kill -9 $pid fi nohup java -jar $jarname.jar --spring.profiles.active=online -server -Xms512m -Xmx1024m -Xss256k >> ./run.log 2>&1 & echo "start success!!!"
注意看 nohup … >> ./run.log 2>&1 & 這一行,這里是將該進(jìn)程的日志全部輸出到指定的文件里,應(yīng)該有不少人是這么做的。
那么這樣做會(huì)出現(xiàn)一種情況,就是run.log會(huì)越來(lái)越大,直到爆炸。
該怎么解決呢?
一共分為兩個(gè)步驟:
1.先創(chuàng)建一個(gè)清理日志文件的腳本 1.直接清除方式 2.保留部分方式 2.再創(chuàng)建一個(gè)定時(shí)任務(wù)(比如凌晨五點(diǎn)執(zhí)行一次腳本)
下面對(duì)這兩部進(jìn)行細(xì)說(shuō):
第一點(diǎn):這點(diǎn)其實(shí)是要看個(gè)人的具體需求的,比如清除的條件,可以是文件達(dá)到多大進(jìn)行處理,處理時(shí)有的會(huì)保留一部分,有的會(huì)全清掉。
1.先說(shuō)直接清除方式:
先創(chuàng)建一個(gè)腳本文件,內(nèi)容如下:
#!/bin/bash # 設(shè)置文件路徑 FILE_PATH="/home/program/app/run.log" # 設(shè)置文件大小閾值,單位為字節(jié) THRESHOLD_SIZE=$((100 * 1024 * 1024)) # 獲取文件大小 FILE_SIZE=$(du -b "$FILE_PATH" | cut -f1) # 檢查文件是否超過(guò)閾值 if [ $FILE_SIZE -gt $THRESHOLD_SIZE ]; then # 文件超過(guò)閾值,清空文件內(nèi)容 echo -n > "$FILE_PATH" echo "File has been cleaned up." else echo "File size is within threshold." fi
如果日志文件達(dá)到了100M,就清空文件內(nèi)容。
記得把FILE_PATH改為你自己的日志文件路徑
然后加入到定時(shí)任務(wù):
crontab -e
內(nèi)容如下:
0 5 * * * /data/log_clean/clean_app_log_file.sh
記得把路徑替換成你自己的文件路徑
2.保留部分方式
還是創(chuàng)建一個(gè)腳本文件:
log=`tail -n 10000 nohup.out`; echo "$log" > /home/program/app/run.log
記得把路徑換成你自己的日志文件路徑
然后創(chuàng)建定時(shí)任務(wù),跟直接清除方式一樣。
到此這篇關(guān)于springboot項(xiàng)目使用nohup將日志指定輸出文件過(guò)大解決辦法的文章就介紹到這了,更多相關(guān)springboot nohup文件過(guò)大內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring中ApplicationContextAware的使用方法詳解
ApplicationContextAware?通過(guò)它Spring容器會(huì)自動(dòng)把上下文環(huán)境對(duì)象調(diào)用ApplicationContextAware接口中的setApplicationContext方法,這篇文章主要介紹了Spring中ApplicationContextAware的作用,需要的朋友可以參考下2023-03-03在Linux系統(tǒng)上升級(jí)Java版本的兩種方法步驟
由于項(xiàng)目升級(jí),需要將JDK7升級(jí)到JDK8,升級(jí)JDK的同時(shí)也要升級(jí)一些其他的版本,下面這篇文章主要給大家介紹了關(guān)于在Linux系統(tǒng)上升級(jí)Java版本的兩種方法步驟,需要的朋友可以參考下2024-09-09SpringBoot實(shí)現(xiàn)EMQ設(shè)備的上下線告警
EMQX?的上下線系統(tǒng)消息通知功能在客戶端連接成功或者客戶端斷開(kāi)連接,需要實(shí)現(xiàn)設(shè)備的上下線狀態(tài)監(jiān)控,所以本文給大家介紹了如何通過(guò)SpringBoot實(shí)現(xiàn)EMQ設(shè)備的上下線告警,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-10-10java環(huán)境中的JDK、JVM、JRE詳細(xì)介紹
這篇文章主要介紹了java環(huán)境中的JDK、JVM、JRE詳細(xì)介紹的相關(guān)資料,對(duì)于初學(xué)者還是有必要了解下,細(xì)致說(shuō)明他們是什么,需要的朋友可以參考下2016-11-11Spring Boot3整合Mybatis Plus的詳細(xì)過(guò)程(數(shù)據(jù)庫(kù)為MySQL)
這篇文章主要介紹了Spring Boot3整合Mybatis Plus的詳細(xì)過(guò)程(數(shù)據(jù)庫(kù)為MySQL),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作
這篇文章主要介紹了IDEA 插件 mapper和xml互相跳轉(zhuǎn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02基于SpringBoot實(shí)現(xiàn)Web應(yīng)用的登錄與退出功能
登錄與退出功能作為 Web 應(yīng)用中的基礎(chǔ)且重要的組成部分,直接關(guān)系到用戶的安全和隱私保護(hù),所以本文給大家介紹了基于SpringBoot實(shí)現(xiàn)Web應(yīng)用的登錄與退出功能,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下2024-04-04