idea工作台输出的日志详解_详解linux下nohup日志输出过大问题解决方案--分批切割...
概述
有的時(shí)候我們?yōu)榱俗屇硞€(gè)程序在后臺(tái)跑,一般都會(huì)用nohup ./xxx & 執(zhí)行讓程序后臺(tái)運(yùn)行,假設(shè)過了一段時(shí)間日志就上G了,如果有問題想要查看日志,顯然打開文件是一件很麻煩的事,有什么辦法可以減小文件大小呢?
nohup命令解釋:
語法:
nohup [command] [args] [&]說明:nohup 命令運(yùn)行由 Command 參數(shù)和任何相關(guān)的 Arg 參數(shù)指定的命令,忽略所有掛斷信號(hào)。在注銷后使用 nohup 命令運(yùn)行后臺(tái)中的程序。要運(yùn)行后臺(tái)中的 nohup 命令,添加 & ( 表示“and”的符號(hào))到命令的尾部,如果不指定重定向,則日志默認(rèn)輸出到當(dāng)前目錄下nohup.out文件中,
重定向: nohup ./execute.sh > /home/xxx/log.log 2>&1 & :這樣日志會(huì)重定向到指定目錄下。
nohup和&的區(qū)別
& : 指在后臺(tái)運(yùn)行
nohup : 不掛斷的運(yùn)行,注意并沒有后臺(tái)運(yùn)行的功能,,就是指,用nohup運(yùn)行命令可以使命令永久的執(zhí)行下去,和用戶終端沒有關(guān)系,例如我們斷開SSH連接都不會(huì)影響他的運(yùn)行,注意了nohup沒有后臺(tái)運(yùn)行的意思;&才是后臺(tái)運(yùn)行
切分nohup.out,不讓它無限增長
思路:定時(shí)將nohup.out切分成,多個(gè)小文件,但同時(shí)又要使nohup.out不會(huì)無限增長下去(一般情況下是程序不能中斷的)。
a、每天(根據(jù)需要設(shè)置時(shí)間),定時(shí)切分前一天的日志,(比如每天大概1g,那么可以么次切分100m左右),
b、切分完后將nohup.out文件情況,保證新的輸出日志會(huì)不停的繼續(xù)輸出到nohup.out
以上在shell中
current_date=`date -d "-1 day" "+%Y%m%d"`split -b 65535000 -d -a 4 nohup.out ./log/log_${current_date}_這里使用split命令,將nouhup文件按指定大小切分(65535000b 大概60多M吧,可以自定義大小 ),并分成指定格式(-d -a 4以4位數(shù)字形式為后綴以從0000開始),最終輸出格式為log_20190918_0001
cat /dev/null > nohup.out
(該命令會(huì)瞬間清空nohup.out文件,后續(xù)會(huì)繼續(xù)寫該文件),將日志定向到/dev/null中
使用重定向輸出一樣可以這樣,只不過換成重定向的文件名即可
將這些命令定義在一個(gè)shell文件每天定時(shí)運(yùn)行即可,這樣每天日志會(huì)被分成若干份,排查也方便,而且如果日志積壓過大的話??梢远〞r(shí)刪除歷史的日志,保留近幾天即可。
最終腳本如下:
#!/bin/bashpath=$(cd `dirname $0`;pwd) cd $pathecho $pathcurrent_date=`date -d "-1 day" "+%Y%m%d"`echo $current_datesplit -b 65535000 -d -a 4 /home/nohup.out /home/log/log_${current_date}_cat /dev/null > nohup.out覺得有用的朋友多幫忙轉(zhuǎn)發(fā)哦!后面會(huì)分享更多devops和DBA方面的內(nèi)容,感興趣的朋友可以關(guān)注下~
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的idea工作台输出的日志详解_详解linux下nohup日志输出过大问题解决方案--分批切割...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 角色扮演游戏《中国式相亲 2》登陆 St
- 下一篇: linux配置ip地址 suse_sus