tail -f 日志文件路径主要用于查看实时的日志记录,属于动态记录查看。
成都创新互联网站建设公司,提供做网站、网站建设,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
cat日志路径主要用于查看静态的历史日志记录,一般跟路径名称,常见的这周类型的日志记录一般用管道符进行过滤筛选自己所需的记录。
dmesg主要用于调试脚本或者命令,出现异常中断来排查错误原因显示的。
tail -n 10 test.log,查询日志尾部最后10行的日志。
tail -n +10 test.log,查询10行之后的所有日志。
head -n 10 test.log,查询日志文件中的头10行日志。
head -n -10 test.log,查询日志文件除了最后10行的其他所有日志。
操作命令
首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令。
例如dos命令就是控制台命令。要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
1.查看日志常用命令
(1)tail:
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
(2)head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
(3)cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep "debug" 查询关键字的日志
2. 应用场景一:按行号查看---过滤出关键字附近的日志
(1)cat -n test.log |grep "debug" 得到关键日志的行号
(2)cat -n test.log |tail -n +92|head -n 20 选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:
tail -n +92表示查询92行之后的日志
head -n 20 则表示在前面的查询结果里再查前20条记录
3. 应用场景二:根据日期查询日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;
先 grep '2014-12-17 16:17:20' test.log 来确定日志中是否有该 时间点
4.应用场景三:日志内容特别多,打印在屏幕上不方便查看
(1)使用more和less命令,
如: cat -n test.log |grep "debug" |more 这样就分页打印了,通过点击空格键翻页
(2)使用 xxx.txt 将其保存到文件中,到时可以拉下这个文件分析
如:cat -n test.log |grep "debug" debug.txt
1、who命令
who命令查询utmp文件并报告当前登录的每个用户。Who的缺省输出包括用户名、终端类型、登录日期及远程主机。使用该命令,系统管理员可以查看当前系统存在哪些不法用户,从而对其进行审计和处理。例如:运行who命令显示如下所示:
# who
root pts/1 2010-02-22 13:02 (:0.0)
root pts/2 2010-02-22 15:57 (:0.0)
root pts/3 2010-02-22 15:57 (:0.0)
如果指明了wtmp文件名,则who命令查询所有以前的记录。命令who /var/log/wtmp将报告自从wtmp文件创建或删改以来的每一次登录。例如:运行该命令如下所示:
root :0 2010-01-24 21:47
root pts/1 2010-01-24 21:47 (:0.0)
root :0 2010-02-20 19:36
root pts/1 2010-02-20 19:36 (:0.0)
root :0 2010-02-21 15:21
root pts/1 2010-02-21 15:56 (:0.0)
root pts/2 2010-02-21 16:03 (:0.0)
root :0 2010-02-22 13:01
root pts/1 2010-02-22 13:02 (:0.0)
root pts/2 2010-02-22 15:57 (:0.0)
root pts/3 2010-02-22 15:57 (:0.0)
2、user命令
users用单独的一行打印出当前登录的用户,每个显示的用户名对应一个登录会话。如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。运行该命令将如下所示:
# users
root root root
3、last 命令
last命令往回搜索wtmp来显示自从文件第一次创建以来登录过的用户。系统管理员可以周期性地对这些用户的登录情况进行审计和考核,从而发现起中存在的问题,确定不法用户,并进行处理。运行该命令,如下所示:
# last
root pts/3 :0.0 Mon Feb 22 15:57 still logged in
root pts/2 :0.0 Mon Feb 22 15:57 still logged in
root pts/1 :0.0 Mon Feb 22 13:02 still logged in
root :0 Mon Feb 22 13:01 still logged in
reboot system boot 2.6.18-8.el5 Mon Feb 22 12:56 (03:02)
root pts/2 :0.0 Sun Feb 21 16:03 - down (02:37)
4、ac命令
ac命令根据当前的/var/log/wtmp文件中的登录进入和退出来报告用户连结的时间(小时),如果不使用标志,则报告总的时间。例如:ac(回车)显示:total 18.47,如下所示:
# ac
total 18.47
另外,可加一些参数,例如,last -u 102将报告UID为102的用户;last -t 7表示限制上一周的报告。
5、lastlog命令
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容。它根据UID排序显示登录名、端口号(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示**Never logged**。注意需要以root身份运行该命令。
参考资料:《Linux如何学》,部分来源网络