Linux下如何不停止服務,清空nohup.out文件


最近發現有不少人在百度這個問題,當初如易我也是初學者,隨便從網上搜了一下,就轉過來了,不過為了避免搜索結果同質化,為大家提供更翔實的參考,我將nohup.out相關知識整理匯總如下:
1.nohup.out的由來及作用
用途:LINUX命令用法,不掛斷地運行命令。
語法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令運行由 Command 參數和任何相關的 Arg 參數指定的命令,忽略所有掛斷(SIGHUP)信號。在注銷后使用 nohup 命令運行后台中的程序。要運行后台中的 nohup 命令,添加 & ( 表示“and”的符號)到命令的尾部。
例子: nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台執行,並且打印過程日志到nohup.out,當然也可以將nohup.out的輸出轉向到其他文件,高級應用請參考擴展閱讀。
2.nohup.out的查看方式與方法
實際使用過程中,往往人們為了省心(嗯,沒錯,就是懶),經常沒有給nohup.out進行重定向輸出,也沒有按日期分割文件,會造成這個文件特別巨大,達到2G或者3G,這個使用想查看文件,搜索出錯內容就比較痛苦了。一般有兩種方式
1.linux本機查看:使用tail 命令,查看最新的日志,或滾動監控日志打印。
例如命令 tail -1000 nohup.out (查看最后1000行日志文本) tail -f nohup.out(監控日志打印)
2.ftp下載到windown主機查看:一般小的log文件都沒有問題,但是過G的,一般的文本文檔查看就顯得無力了。推薦使用UltraEdit進行打開。
3.nohup.out維護管理方法(清空nohup.out)
如上文所述出現了超大號的文件簡直是令人討厭的事情,而且nohup.out會一直一直自己增長下去,如果你的服務器硬盤不給力的話,很容易把應用也掛掉(硬盤沒空間 ,啥都玩不轉),但是又不能一味的直接刪。因為直接刪除,可能會造成應用無法打印后續的錯誤日志,該問題常見於weblogic服務器,jboss服務器等這些大型中間件,這個在生產環境上要尤為注意。
因此就有了我們不停止服務直接,清空nohup.out文件的方法。
兩個可以不用停止WEB服務就可以清空nohup.out的命令。
第一種:

cp /dev/null nohup.out

第二種:

cat /dev/null > nohup.out

兩個我都用過,不用擔心網上所說的性能問題,通常2/3 個G的文件都是1-2秒執行完畢
4.擴展閱讀
1.nohup的重定向,一勞永逸解決nohup.out文件過大的問題
以下是定義日志打印級別,除了高於級別2的告警信息記錄到log文件外,其余直接不記錄
只輸出錯誤信息到日志文件

nohup ./program >/dev/null 2>log &

什么信息也不要

nohup ./program >/dev/null 2>&1 &

2.Linux的3中重定向
0:表示標准輸入
1:標准輸出,在一般使用時,默認的是標准輸出
2:標准錯誤信息輸出
可以用來指定需要重定向的標准輸入或輸出。例如,將某個程序的錯誤信息輸出到log文件中:./program 2>log。這樣標准輸出還是在屏幕上,但是錯誤信息會輸出到log文件中。另外,也可以實現0,1,2之間的重定向。2>&1:將錯誤信息重定向到標准輸出。
3.關於/dev/null文件
Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。這一點非常有用,當我們不需要回顯程序的所有信息時,就可以將輸出重定向到/dev/null。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM