在生产环境中,往往没有条件给我们去debug排查,更多时候我们是通过日志来看具体的报错日期.
但是日志往往是一直在实时更新,而且记录条数庞大,很难直接定位到错误信息.这个时候,就可以利用sed命令来截取指定时间段内的日志(也是网上大多数博主的做法).
具体命令如下:
但是这条命令的使用有两个前提(很多网上的博主都没有提到)
第一,日志输出的日期格式是要满足命令中的格式 ,如果不是的话就跟着实际的格式改
更加通配的命令可以是这样, 使用 号*
使用 ,将截取到的内容输出到指定的文件中,方便进一步查看
ps:在实际操作中,我们一般会在后面加grep命令做进一步的关键字过滤
tail -f 日志文件路径主要用于查看实时的日志记录,属于动态记录查看.
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的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的.
last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行.
-d 指定记录文件.指定记录文件.将IP地址转换成主机名称.
-f 记录文件 指定记录文件.
-n 显示列数或-显示列数 设置列出名单的显示列数.
-R 不显示登入系统的主机名称或IP地址.
-x 显示系统关机,重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
只列出最近10条记录:
重复执行上一个命令
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行.)
逐屏列出所有的历史记录:
立即清空history当前所有历史命令的记录
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次.
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的.如果想终止输出,按 Ctrl+C 即可.
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件