nohup運行Java tail查看日志方式
nohup運行Java tail查看日志
后臺運行命令:nohup
nohup命令
:nohup是不掛斷的意思( no hang up)。- 如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結束,那么可以使用nohup命令。
- 該命令忽略所有掛(SIGHUP)信號,可以在你退出帳戶/關閉終端之后繼續(xù)運行相應的進程。
該命令的一般格式為:
nohup yourcommand &
yourcommand
:啟動對象命令。可以跟該命令需要的各種參數(shù)。- &是指在后臺運行,但當用戶推出(掛起)的時候,命令自動也跟著退出. nohup與&結合起來,可以實現(xiàn)不掛斷的后臺運行。
實現(xiàn)屏幕輸出記錄到日志文件
nohup yourcommand 2>&1 &
- 0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
- 2>&1是將標準錯誤(2)重定向到標準輸出(&1),標準輸出(&1)再被重定向輸入到日志文件中。
如果希望將日志輸出到別的文件中,可以增加一個文件路徑參數(shù)。
如下:
nohup yourcommand >myout.log 2>&1 &
其中myout.log是保存輸出的文件名稱;
運行Java
nohup java -jar XXX.jar &
命令介紹
當您在命令行中執(zhí)行 nohup java -jar XXX.jar & 命令時,nohup 是一個在 Unix/Linux 系統(tǒng)中使用的命令,用于在后臺運行程序,并忽略 HUP(Hangup)信號,保證程序在用戶注銷或終端關閉時仍然可以繼續(xù)運行。
nohup 命令會將程序的輸出重定向到一個名為 nohup.out 的文件,默認情況下,該文件會在當前目錄下創(chuàng)建。
因此,當您執(zhí)行 nohup java -jar XXX.jar & 后,程序的輸出(包括日志)將會被重定向到 nohup.out 文件中。
添加額外參數(shù)
例如,我們需要在命令行設置端口信息
nohup java -jar XXX.jar --server.port=8080 &
修改日志輸出地址
nohup java -jar XXX.jar --server.port=8080 > /path/to/logfile.log &
> /path/to/logfile.log 部分將日志輸出重定向到指定的日志文件中。請將 /path/to/logfile.log 替換為您希望使用的實際日志文件路徑。
通過執(zhí)行上述命令,您將在后臺運行 XXX.jar 文件,并將日志輸出到指定的日志文件中。
請注意,如果指定的日志文件路徑不存在,系統(tǒng)將自動創(chuàng)建該文件。
實時監(jiān)測日志輸出內容命令:tail
1、tail 命令可用于查看文件的內容,參數(shù) -f 常用于查閱正在改變的日志文件,如實時查看 Java 應用程序輸出的日志信息。
2、tail -f filename 會把 filename 文件里的最尾部的內容顯示在屏幕上,并且不斷刷新,只要 filename 更新就可以看到最新的文件內容。
參數(shù) 描述
-f
循環(huán)讀取-q
不顯示處理信息-v
顯示詳細的處理信息-c
<數(shù)目> 顯示的字節(jié)數(shù)-n
<行數(shù)> 顯示文件的尾部 n 行內容--pid=PID
與-f合用,表示在進程ID,PID死掉之后結束-q
--quiet, --silent 從不輸出給出文件名的首部-s
--sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒
常見用法舉例
舉例 描述
tail notes.log 顯示當前目錄下 notes.log 文件的最后 10 行信息 tail -f notes.log 跟蹤當前目錄下名為 notes.log 的文件的增長情況,按 ctrl + c 可以退出跟蹤 tail -c 10 notes.log 顯示當前目錄下 notes.log 文件的最后 10 個字符 tail -f -n 50 nohup.out 實時顯示 nohup.out 文件的最后 50 條信息,行數(shù)可以自己定義。 tail -f xxx.log ----實時刷新最新日志 tail -100f xxx.log --------實時刷新最新的100行日志 tail -100f xxx.log | grep [關鍵字] -------查找最新的一百行中與關鍵字匹配的行 tail -100f xxx.log | grep '2019-10-29 16:4[0-9]' ------查找最新的100行中時間范圍在2019-10-29 16:40-2019-10-29 16:49范圍中的行 tail -1000f xxx.log | grep -A 5 [關鍵字] ----------查看最新的1000行中與關鍵字匹配的行加上匹配行后的5行
舉例 描述
- tail 命令是nohup命令的好搭檔。配合-f參數(shù),可以實時監(jiān)視向日志文件增加的信息。
tail -f myout.log
- tail -f 等同于–follow=descriptor,根據(jù)文件描述符進行追蹤,當文件改名或被刪除,追蹤停止
- tail -F 等同于–follow=name --retry,根據(jù)文件名進行追蹤,并保持重試,即該文件被刪除或改名后,如果再次創(chuàng)建相同的文件名,會繼續(xù)追蹤
- tailf 等同于tail -f -n 10,與tail -f不同的是,如果文件不增長,它不會去訪問磁盤文件,所以tailf特別適合那些便攜機上跟蹤日志文件,因為它減少了磁盤訪問,可以省電。
監(jiān)測程序是否在正常運行中:ps
ps命令也可以和nohup命令配合使用,用于顯示當前進程 (process) 的狀態(tài)。可以監(jiān)視后臺程序是否在正常運行中或者已經掛掉。
ps -ef|grep yourcommand
grep 的參數(shù)
(縮寫來自Globally search a Regular Expression and Print)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。
-a
或--text
: 不要忽略二進制的數(shù)據(jù)。-A<顯示行數(shù)>
或--after-context=<顯示行數(shù)>
: 除了顯示符合范本樣式的那一列之外,并顯示該行之后的內容。-b
或--byte-offset
: 在顯示符合樣式的那一行之前,標示出該行第一個字符的編號。-B<顯示行數(shù)>
或--before-context=<顯示行數(shù)>
: 除了顯示符合樣式的那一行之外,并顯示該行之前的內容。-c
或--count
: 計算符合樣式的列數(shù)。-C<顯示行數(shù)>
或--context=<顯示行數(shù)>
或-<顯示行數(shù)>
: 除了顯示符合樣式的那一行之外,并顯示該行之前后的內容。-d <動作>
或--directories=<動作>
: 當指定要查找的是目錄而非文件時,必須使用這項參數(shù),否則grep指令將回報信息并停止動作。-e<范本樣式>
或--regexp=<范本樣式>
: 指定字符串做為查找文件內容的樣式。-E
或--extended-regexp
: 將樣式為延伸的正則表達式來使用。
-f<規(guī)則文件>
或 --file=<規(guī)則文件>
: 指定規(guī)則文件,其內容含有一個或多個規(guī)則樣式,讓grep查找符合規(guī)則條件的文件內容,格式為每行一個規(guī)則樣式。
-F
或--fixed-regexp
: 將樣式視為固定字符串的列表。-G
或--basic-regexp
: 將樣式視為普通的表示法來使用。-h
或--no-filename
: 在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。-H
或--with-filename
: 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。-i
或--ignore-case
: 忽略字符大小寫的差別。-l
或--file-with-matches
: 列出文件內容符合指定的樣式的文件名稱。-L
或--files-without-match
: 列出文件內容不符合指定的樣式的文件名稱。-n
或--line-number
: 在顯示符合樣式的那一行之前,標示出該行的列數(shù)編號。-o
或--only-matching
: 只顯示匹配PATTERN 部分。-q
或--quiet
或--silent
: 不顯示任何信息。-r
或--recursive
: 此參數(shù)的效果和指定"-d recurse"參數(shù)相同。-s
或--no-messages
: 不顯示錯誤信息。-v
或--revert-match
: 顯示不包含匹配文本的所有行。-V
或--version
: 顯示版本信息。-w
或--word-regexp
: 只顯示全字符合的列。-x --line-regexp
: 只顯示全列符合的列。-y
: 此參數(shù)的效果和指定"-i"參數(shù)相同。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Spring?Boot?微服務中集成?MyBatis-Plus?與集成原生?MyBatis在配置上的不同
在Spring?Boot微服務中,MyBatis-Plus通過其Boot?Starter和豐富的配置屬性,極大的簡化了MyBatis的集成和配置工作,尤其是對于全局設置和常用插件的使用,本文給大家介紹Spring?Boot?微服務中集成?MyBatis-Plus與集成原生?MyBatis?有哪些配置上的不同,感興趣的朋友一起看看吧2025-04-04SpringBoot 如何實現(xiàn)自定義Redis序列化
這篇文章主要介紹了SpringBoot 如何實現(xiàn)自定義Redis序列化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10java組件SmartUpload和FileUpload實現(xiàn)文件上傳功能
這篇文章主要為大家詳細介紹了java組件SmartUpload和FileUpload實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-11-11基于Java SWFTools實現(xiàn)把pdf轉成swf
這篇文章主要介紹了基于Java SWFTools實現(xiàn)把pdf轉成swf,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11