Linux系統(tǒng)下,使用nohup命令運(yùn)行程序時(shí),其輸出默認(rèn)會(huì)追加到nohup.out文件中。要按日期查詢(xún)這些日志,您可以采取以下步驟:
方法一:結(jié)合find和grep命令
-
定位日志文件: 首先,使用find命令查找指定日期范圍內(nèi)的日志文件。例如,查找過(guò)去7天內(nèi)所有.log結(jié)尾的文件:
find /path/to/logs -type f -name "*.log" -mtime -7
將/path/to/logs替換為您的日志文件目錄。-mtime -7表示查找修改時(shí)間在7天之前的文件。
-
按日期篩選日志: 然后,使用grep命令過(guò)濾包含特定日期的日志行。假設(shè)您要查找2024年12月30日的日志:
find /path/to/logs -type f -name "*.log" -mtime -7 -exec grep -l "2024-12-30" {} ;
-exec grep -l “2024-12-30” {} ; 會(huì)對(duì)find找到的每個(gè)文件執(zhí)行g(shù)rep命令,-l選項(xiàng)只輸出包含匹配日期的文件名。
-
查看日志內(nèi)容: 最后,使用cat或less命令查看包含指定日期的文件內(nèi)容:
cat /path/to/logs/your_log_file.log # 或 less /path/to/logs/your_log_file.log
將/path/to/logs/your_log_file.log替換為步驟2中g(shù)rep命令輸出的文件名。
方法二:使用awk命令 (更靈活)
如果您的日志文件包含日期時(shí)間戳,awk命令可以提供更靈活的日期范圍篩選:
假設(shè)您的日志文件每行格式類(lèi)似于:[2024-12-30 10:00:00] …log message…
awk '$1 >= "2024-12-23" && $1 <= "2024-12-30"' /path/to/logs/your_log_file.log
這將顯示/path/to/logs/your_log_file.log中日期在2024年12月23日至2024年12月30日之間的所有行。 您可以根據(jù)您的日志格式調(diào)整$1等字段選擇器。
記住將/path/to/logs和/path/to/logs/your_log_file.log替換為您的實(shí)際路徑和文件名。 選擇哪種方法取決于您的日志文件格式和日期記錄方式。 如果日志文件很大,建議使用less代替cat以方便查看。