解決Linux中nohup.out日志過大問題
Linux中nohup.out日志過大問題
關(guān)于Linux中nohup.out日志過大問題,可以通過設(shè)置定時任務(wù)來定期清理,具體操作是在nohup.out 所在目錄創(chuàng)建一個ClearNohup.sh 腳本,通過定時任務(wù)執(zhí)行該腳本讓其每周清理一次,防止nohup文件過大。
#!/bin/bash
# Author: Ljohn
# Last Update: 2018.02.24
# Description: nohup.out 日志分割
this_path=$(cd `dirname $0`;pwd) #根據(jù)腳本所在路徑
current_date=`date -d "-1 day" "+%Y%m%d"` #列出時間
cd $this_path
echo $this_path
echo $current_date
do_split () {
[ ! -d logs ] && mkdir -p logs
split -b 10m -d -a 4 ./nohup.out ./logs/nohup-${current_date} #切分10兆每塊至logs文件中,格式為:nohup-xxxxxxxxxx
if [ $? -eq 0 ];then
echo "Split is finished!"
else
echo "Split is Failed!"
exit 1
fi
}
do_del_log() {
find ./logs -type f -ctime +7 | xargs rm -rf #清理7天前創(chuàng)建的日志
cat /dev/null > nohup.out #清空當(dāng)前目錄的nohup.out文件
}
if do_split ;then
do_del_log
echo "nohup is split Success"
else
echo "nohup is split Failure"
exit 2
fi
# crontab -e 添加定時任務(wù):每周第一天的1點執(zhí)行一次
#0 1 * * */1 /server/scripts/clearNohup.sh &>/dev/null
第二步執(zhí)行定時任務(wù)
crontab -e #添加定時任務(wù):每周第一天的1點執(zhí)行一次
注意事項
如果想通過手動執(zhí)行該腳本來達到清理的目的,需要設(shè)置該腳本的權(quán)限為可執(zhí)行
如何處理nohup.out的文件過大
linux中使用nohup的方式啟動java程序?qū)е驴刂婆_的輸出會加載到nohup.out文件里,日積月累導(dǎo)致文件過大占用硬盤。
處理方法
創(chuàng)建清理文件clear.sh 內(nèi)容如下:
this_path=$(cd `dirname $0`;pwd) #根據(jù)腳本所在路徑
current_date=`date -d "-1 day" "+%Y%m%d"` #列出時間
cd $this_path
echo $this_path
echo $current_date
do_split () {
[ ! -d logs ] && mkdir -p logs
#切分10兆每塊至logs文件中,格式為:nohup-xxxxxxxxxx ./logs/nohup-${current_date}表示當(dāng)前目錄的logs可以自主修改
split -b 10m -d -a 4 nohup.out的文件位置 ./logs/nohup-${current_date}
if [ $? -eq 0 ];then
echo "Split is finished!"
else
echo "Split is Failed!"
exit 1
fi
}
do_del_log() {
#清理3天前創(chuàng)建的日志 ./logs表示當(dāng)前目錄的logs可以自主修改
find ./logs -type f -ctime +3 | xargs rm -rf
cat /dev/null > nohup.out的文件位置 #清空當(dāng)前目錄的nohup.out文件
}
if do_split ;then
do_del_log
echo "nohup 切割成功"
else
echo "nohup 切割失敗"
exit 2
fi
在linux的crontab中添加任務(wù)
sudo /etc/init.d/cron start 啟動crontab sudo /etc/init.d/cron stop 停止crontab sudo /etc/init.d/cron status crontab狀態(tài) sudo /etc/init.d/cron restart 重啟crontab
在 vi /etc/crontab中添加任務(wù)
31 1 * * * root /data/clearNohup/clearPricenohup.sh &>/dev/null #每日1點31執(zhí)行 ,根據(jù)需要自行修改
整體像這樣

重啟crontab即可
可以測試一下 sh clear.sh &>/dev/null
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Apache?APISIX?Dashboard?未授權(quán)訪問漏洞分析(CVE-2021-45232)
Apache?APISIX?是一個動態(tài)、實時、高性能的?API?網(wǎng)關(guān),?提供負(fù)載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能,這篇文章主要介紹了Apache?APISIX?Dashboard?未授權(quán)訪問漏洞(CVE-2021-45232),需要的朋友可以參考下2023-03-03
淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法
這篇文章主要介紹了淺談Linux下修改/設(shè)置環(huán)境變量JAVA_HOME的方法,環(huán)境變量一般是指在操作系統(tǒng)中用來指定操作系統(tǒng)運行環(huán)境的一些參數(shù)。環(huán)境變量是在操作系統(tǒng)中一個具有特定名字的對象,它包含了一個或者多個應(yīng)用程序所將使用到的信息。感興趣的可以了解一下2020-07-07
crontab定時任務(wù)不執(zhí)行的原因分析與解決方法
這篇文章主要給大家介紹了關(guān)于crontab定時任務(wù)不執(zhí)行的原因分析與解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
linux使用nginx部署ssl證書,將http升級為https實現(xiàn)方式
本文詳細介紹了在CentOS Stream 8上使用Nginx部署Vue和React項目的步驟,包括下載SSL證書、上傳證書、安裝SSL模塊、驗證安裝以及配置nginx.conf文件2026-03-03

