linux nohup日志如何按日期查询

说白了,在Linux里查nohup.out日志就两招:用find+grep按文件时间找,或者用awk按行里的日期戳筛。
这事儿其实不难,关键看日志是按文件名分日期还是按行头标日期。

先用find+grep最简单。
比如去年我们跑的那个项目,日志是按天拆的(nohup_2 02 4 -1 2 -3 0.log那种),直接用find /path/to/logs -type f -name ".log" -mtime -7 就能捞过去7 天内改过的文件。
要是日志文件里头还带日期(比如nohup.out里直接写2 02 4 -1 2 -3 0),那就用grep "2 02 4 -1 2 -3 0" /path/to/logs/nohup.out捞特定日期的行。
有个细节挺关键的,如果你想递归找所有子目录,得用find /path/to/logs -type f -name ".log" -exec grep -l "2 02 4 -1 2 -3 0" {} -,这样只会给你列出含那天的文件名,避免结果炸成一堆。
看完直接用less翻页看,比cat强多了。

另外一点是用awk。
去年我们有个项目日志行头全是带方括号的日期时间戳([2 02 4 -1 2 -3 01 0:00:00]Error:...),这时候用awk '$1 == "[2 02 4 -1 2 -3 0]"' /path/to/logs/nohup.out就能精确捞单天记录。
还有个细节挺关键的,要是想捞一个范围,比如1 2 月2 3 到3 0日,就得用awk '$1 >= "[2 02 4 -1 2 -2 3 ]" && $1 <= "[2 02 4 -1 2 -3 0]"'。
我一开始也以为直接比字符串就行,后来发现不对,带方括号的时间戳得按完整字符串比。
等等,还有个事,如果日期不在第一列,比如在第二列,就得改用$2 ,这个点很多人没注意。

最后提醒个坑:用find的-mtime找文件修改时间其实挺粗的,按天算,要是想更精确,比如捞某个小时内的,还是得用awk。
说实话挺坑的,用的时候容易忽略这个差异。

建议先看看你的日志是哪种格式,再决定用哪个方法。
要是大文件量,less绝对比cat香。

如何使用命令行在Linux中查找文件和文件夹

对,就是找文件这事儿。
Linux里,常用几个命令:
1 . find:找文件,点(.)代表当前目录,比如找以“pro”开头的文件,写find . -name "pro"
2 . locate:快,但得先建索引,用updatedb更新,比如找mydata文件,写locate mydata
3 . which:找可执行文件,比如which firefox
4 . whereis:找命令位置,比如whereis firefox
find适合复杂条件,locate快但依赖数据库,which找可执行文件,whereis找位置。
你自己看哪种适合你。

linux查看文件按时间顺序

上周 试过ls-lt 确实这样看就行 最新的在最前
你看着办