關於Linux中nohup.out日志過大問題 -开发者知识库

關於Linux中nohup.out日志過大問題 -开发者知识库,第1张

關於Linux中nohup.out日志過大問題


背景,java項目,一般在運行JAVA程序時需要用到nohup命令來實現后台啟動日志,默認保存在當前目露nohup.out文件。但是有些程序輸出nohup文件會出現過大的情況。


在此解決如下:

1,在nohup.out 所在目錄創建一個ClearNohup.sh 腳本,通過定時任務讓其每周清理一次。防止nohup文件過大問題。

#!/bin/bash#
this_path=$(cd `dirname $0`;pwd)   #根據腳本所在路徑
cd $this_path   
echo $this_path  
current_date=`date -d "-1 day" " %Y%m%d"`   #列出時間
echo $current_date  
split -b 60m -d -a 4 ./nohup.out   ./logs/nohup-${current_date}  #切分60兆每塊至logs文件中,格式為:nohup-xxxxxxxxxx        
cat /dev/null > nohup.out#清空當前目錄的nohup.out文件

2,添加定時任務

 crontab -e

 

 * * * * */1 /cljj/apps/21.biz_channel/clearNohup.sh    #每周執行清理日志操作

 

注:

 1、nohup命令解釋:

  a、語法:nohup [command] [args] [&]

  b、說明:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷信號。在注銷后使用 nohup 命令運行后台中的程序。要運行后台中的 nohup 命令,添加&(表示“and”的符號)到命令的尾部,如果不指定重定向,則日志默認輸出到當前目錄下nohup.out文件中,一般提交如 :nohup ./execute.sh &  這樣日志或輸出當前運行目下.nohup.out中重定向: nohup ./execute.sh >  /home/xxx/log.log 2>&1 & :這樣日志會重定向到指定目錄下 

 2、split命令可以將一個大文件分割成很多個小文件,有時需要將文件分割成更小的片段,比如為提高可讀性,生成日志等。 

選項 

-b:值為每一輸出檔案的大小,單位為 byte。 

-C:每一輸出檔中,單行的最大 byte 數。 

-d:使用數字作為后綴。同時也可以使用-a length來指定后綴的長度:

-l:值為每一輸出檔的列數大小。

例如:

生成一個100k的文件,然后用split切分(格式datafile201703230000)。

# dd if=/dev/zero bs=100k count=1 of=date.file# split -b 10k -d -a 4 ./date.file   ./logs/nohup$(date  \%Y\%m\%d)log# cd logs/ ;lsnohup20170323log0002  nohup20170323log0006  nohup20170323log0003  nohup20170323log0007  nohup20170323log0000  nohup20170323log0004 nohup20170323log0001  nohup20170323log0005


本文出自 “Ljohn” 博客,請務必保留此出處http://ljohn.blog.51cto.com/11932290/1909665

最佳答案:

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
U19学习网站 » 關於Linux中nohup.out日志過大問題 -开发者知识库