您现在的位置是:首页 > 文章详情

linux下查看程序日志

日期:2017-11-27点击:716

在开发中,我们经常在代码中添加日志,主要作用是程序在服务器上跑出bug时方便进行问题排查,因为在服务器上不可能像在本地运行程序那样debug,所以日志对于我们非常重要,几乎就是解决问题唯一能依赖的东东。

在查看服务器日志时,经常使用以下几条命令:

 tail -300f xxx.log | grep "userId" tail -300f xxx.log | grep "userId" -B 20 -C 20 tail -300f xxx.log | grep "userId" | grep "hello" cat xxx.log | grep "userId"

tail是查看文件尾部的内容,由于程序中添加日志是添加在文件尾部的,因此文件尾部的内容一直是最新的 。这个命令适用于动态查看日志内容。

grep 是用来过滤内容的,按行过滤,只要一行日志中的内容包含 “userId” 字符串 ,那么就会打印出来。

| 是linux的管道,用来重定向输出到下一个命令的输入。

grep的 -B 和 -C 参数 意思为找到含有xx字符串的行,然后打印出此行以及此行向前20行和向后20行。 -300f 意思是看文件尾部的300行。

两次grep就是从第一个grep的输出中再进行一次过滤。

注意:grep 的字符串内容是按照正则表达式进行处理的,因此比如像 . * 这种特殊字符(在正则中),如果想按文本匹配,需要用 \ 进行转义 。看如下例子:

首先我创建了一个文件,名为file ,文件内容为:

  hello world . i am a programmer yes ok byby

然后执行如下命令:

 cat file | grep "."

原意为过滤出包含 . 的那行,但结果如下:

  hello world . i am a programmer yes ok byby

grep按照正则表达书处理, . 代表任意内容,因此一行中包含任何内容都会被打印出。

为了达到原目的,需要对 . 进行转义:

 cat file | grep "\."

结果如下:

  hello world . i 

达到目的。

2017-03-30添加

 grep -E "column1|column2" a.txt// 每一行出现column1或者column2

du -h - -max-depth=1 从当前目录开始显示两层深度的文件及文件夹大小

df -h 显示磁盘使用情况

cp /dev/null a.txt 清空文件,即删除

sz filename 下载服务器文件到本地

rz -be 上传文件到服务器

ls -ald l 表示输出一个长清单,d表示列出目录,a表示列出以 . 开头的文件。

在java程序里写文件时,要保证文件所在的各级文件夹已经存在,但是文件可以不存在;另外,启动该java程序的user需要有该文件和文件夹rw权限。一般可以写到user的 home目录中去,这里肯定有权限。

split -l 100000 user.sql 按行数每十万行拆分成一个小文件

统计日志中某个字符串出现的行数 grep str a.log | wc -l  若grep加了 -o 就是统计字符串出现的次数

原文链接:https://www.centoschina.cn/course/introduction/9332.html
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章