查看Linux系统中日志文件

avatar
作者
猴君
阅读量:0

Linux 系统中 Ubuntu,Debian,CentOS,RedHat 作为常用的服务器软件系统,很多人都已经熟知。不论是服务器出现问题,还是日常维护或各种环境搭建,我们经常需要登录上服务器查看日志。

如果熟知 Linux 下的 tail,cat,head,more,less 等命令,并会使用 vi 编辑器,在 Linux 系统中查看日志会是一件非常容易的事情。

“同事小杨,做java开发,一次他在CentOS系统上部署完服务后运行,发现服务异常,需要查看日志。就看小杨从容地打开 FileZilla 软件,SSH 到服务器,找到 log 日志文件,下载到本地。然后,他又使用 notepad++ 打开日志文件,通过 CTRL+F来查找异常信息和关键词。”

看到这里,不知你是否也这样,或你身边的也有这样的同事。你说这种查日志方式不对吗?不能说不对,因为目的达到了。问题是效率太低,也不够专业,这种方式也不能实时动态的观测日志。

如果你熟悉 Linux 系统,会那么几个常用的 Linux 命令,以上的场景就会是另一番景象。

“小杨通过SSH登录上 CentOS 服务器,一条 cd 命令进入日志文件所在目录。就看他不仅不慢的找到应用 log 日志文件,一条 tail -f app.log 执行过后,实时观测服务日志输出。突然,他看到了一条异常抛出日志,他果断 CTRL+C 中断了 tail 命令执行,仔细的看了看输出的异常日志。”

“日志输出太快,虽然短暂的看到了当前的日志,但为了找到更多关键信息,小杨熟练的在终端中输入vi app.log ,然后在vi命令模式下输入/关键字 快速匹配到了要找的日志内容。”

你看,这种场景下操作效率就很高,省去了你下载日志文件到本地再查找的问题时间,同时也更实时方便。

对于第一种场景,如果日志文件小,下载日志文件到本地查找也说的过去。如果日志文件是几百兆甚至几 G 的情况呢?你还要将日志文件下载到本地查找吗?先不说下载累不累,就什么时候下载下来都不好说。再说,你一不小心再把带宽给占了,下小片的同学就不乐意了。

说了这么多,终归是熟练掌握一些 Linux 命令和系统中的 vi 操作,对你的工作百利无一害。

下面我们重点讲讲Linux中常用的一些查看日志命令。

tail 命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。 

默认显示文件最后10行。 

tail filename

动态跟踪文件新增内容,不断刷新输出,可以将文件中尾部最新的内容显示在屏幕上。 

tail -f filename

指定显示文件尾部n行内容,例如。 

tail -n 100 filename #显示文件尾部100行内容。
tail -n +100 filename #显示文件前100行内容。
tail -n -100 filename #除了前99行不显示外,显示第100行到末尾行。

更多关于tail命令的用法可以参看 如何在Linux中使用 tail 命令

cat 命令

cat命令用于一次性在终端中显示文件的所有内容。

显示文件所有内容。 

cat filename

 显示文件并显示行号。

cat -n filename #由 1 开始对所有输出的行数编号。
cat -b filename #和 -n 相似,只不过对于空白行不编号。

 和 tail、head 命令的配合使用

cat filename | tail -10 #显示文件后10行内容。
cat filename | head -10 #显示文件前10行内容。
cat -n filename | tail -10 #显示文件后10行,并显示其行号。
cat -n filename | head -10 #显示文件前10行,并显示其行号。

更多cat命令的使用可以在终端中通过man cat查看。

head命令 

head 命令用于显示文件的开头内容,它和 tail 命令正好相反。 

默认显示文件头10行。 

head filename

显示开头指定n行的文件内容。 

head -n 100 filename #显示开头起100行内容。

显示开头指定个数的字符数。

head -c 100 filename #显示开头起100个字符内容。

更多关于head命令的用法,可以在终端中输入man head查看。

 more 和 less 命令

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。

 分页显示文件内容。

more filename #可以通过空格键或者CTRL+F翻页查看。

 指定从n行开始显示日志内容。

more +n filename

 从开始匹配到key关键词内容的头两行开始显示。

more +/key filename

更多关于more名称的用法,可以在终端中输入man more查看。

更多关于less名称的用法,可以在终端中输入man less查看。

仅以上面命令为引,举例说明常用的一些查看日志文件的命令。

还有一些常用的命令例如grep,sed,touch,find 等 linux 命令有待你慢慢熟悉掌握常用方法。

推荐课程:https://xxetb.xetslk.com/s/3oyV5o

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!