查看linux日志的工具有哪些

查看linux日志的工具有哪些,第1张

linux 日志查看

tail、head、 cat、tac、sed、less、echo

1、命令格式: tail [必要参数] [选择参数] [文件]

-f 循环读取

-q 不显示处理信息

-v 显示详细的处理信息

-c<数目>显示的字节数

-n<行数>显示行数

-q, --quiet, --silent 从不输出给出文件名的首部

-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

tail -n 100 catalina.out 查询日志尾部最后100行的日志

tail -n +100 catalina.out 查询100行之后的所有日志

tail -fn 100 catalina.out 循环实时查看最后100行记录(最常用的)

配合着grep用, 例如 : tail -fn 100 catalina.out | grep -- '关键字'

如果一次性查询的数据量太大,可以进行翻页查看,

例如:tail -n 6000 catalina.out |more -100 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)

--------------------------------------------------------------------------------------------------------------------------

2、head

head -n 1000 catalina.out //查询日志文件中的头10行日志head -n -1000 catalina.out //查询日志文件除了最后10行的其他所有日志

head其他参数与tail 类似

-----------------------------------------------------------------------------------------------------

3、cat

cat 是由第一行到最后一行连续显示在屏幕上

$ cat filename// 一次显示整个文件

$ cat >filename //从键盘创建一个文件

$cat file1 file2 >file//将几个文件合并为一个文件,只能创建新文件,不能编辑已有文件.

$cat -n textfile1 >textfile2 //将一个日志文件的内容追加到另外一个 :

$cat : >textfile2// 清空一个日志文件

注意: >意思是创建, >>是追加。

cat其他参数与tail 类似

----------------------------------------------------------------------------------------------------------------------------------------

4.tac

tac 则是由最后一行到第一行反向在萤幕上显示出来

--------------------------------------------------------------------------------------------------------------------------------------

5.sed

这个命令可以查找日志文件特定的一段 , 也可以根据时间的一个范围查询

//按照行号

sed -n '2,100p'catalina.out

//这样你就可以只查看文件的第5行到第10行。

//按照时间段

sed -n '/2019-01-17 10:07:10/,/2019-02-14 16:54:01/p'catalina.out

-------------------------------------------------------------------------------------------------

6.less

less log.log

shift + G 命令到文件尾部 然后输入 ?加上你要搜索的关键字例如 ?1213shift+n 关键字之间进行切换

----------------------------------------------------------------------------------------------

附录1history // 所有的历史记录history | grep XXX // 历史记录中包含某些指令的记录history | more // 分页查看记录history -c // 清空所有的历史记录!! 重复执行上一个命令

查询出来记录后选中 : !323

-------------------------------------------------------------------------------------------------------------

7、echo

输出 echo "12345"

---------------------------------------------------------------------------------------------------------

附录2

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 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件

---------------------------------------------------------------------------------------------------------------------

附录3

tomcat运行日志

1、先切换到:cd usr/local/tomcat3/logs

2、tail -f catalina.out

3、这样运行时就可以实时查看运行日志了

Ctrl+c 是退出tail命令。 alt+E+R重置

其实,那么,能不能把last 写入的日志,进行,分割重新存储呢 ?

这样的话,其实,还挺容易的。。。

last | awk -F " " ' {print $1 }' >/root/login_users //这个是用户

last | awk -F " " ' {print $2 }' >/root/login_termi //终端

last | awk -F " " ' {print $3 }' >/root/login_ips //ip 信息

这样,都存储在一个很规则的表中

有些服务,会自动产生大量的日志文件,如果不限制,会占用磁盘空间。

如果单纯的用定时任务crontab删除,又不太灵活,这时需要日志神器logrotate。

logrotate工具是系统自带为了方便进行日志管理而产生的一个工具。

系统会定时运行 logrotate,一般是每天一次。也是基于定时任务crontab运行的。

配置文件:

主配置文件的位置在 /etc/logrotate.conf,一般配置在 /etc/logrotate.d/子目录下。

如系统默认日志配置:

配置文件参数:

更多信息请参考man logrotate帮助文档

模板是通用的,而配置参数则根据你的需求进行调整,不是所有的参数都是必要的。

在上面的配置文件中,我们只想要轮询一个日志文件,size=50M 指定日志文件大小可以增长到 50MB,dateext 指 示让旧日志文件以创建日期命名。

可自行参考/etc/logrotate.d/目录下系统默认的文件。

logrotate命令:

具体 logrotate 命令格式如下:

要为某个特定的配置调用 logrotate:

排障过程中的最佳选择是使用-d选项以预演方式运行 logrotate。要进行验证,不用实际轮循任何日志文件, 可以模拟演练日志轮循并显示其输出。

正如我们从上面的输出结果可以看到的,logrotate 判断该轮循是不必要的。如果文件的时间小于一天,就会发生了。

强制轮循即使轮循条件没有满足,我们也可以通过使用-f选项来强制 logrotate 轮循日志文件,-v参数提供了详细的输出。

个人项目配置:

项目每天可产生20G左右的日志,显示不能做每日轮询,所以额外需要添加定时任务做每小时,或者每隔多少分钟。

如果轮询日志异常报错如下:

error: skipping “” because parent directory has insecure permissions (It’s world writable or writable by group which is not “root”) Set “su” directive in config file to tell logrotate which user/group should be used for rotation.”

需要加 su root root 选项。

同时添加定时任务:

定时任务说明:

第一条,每隔40分钟轮询执行一次logrotate任务。

第二条,每天凌晨4点删除前一天的日志,原因如下:

由于项目系统产生日志格式的原因,会导致以下情况:

如果昨天的分割到4个后(或者1,2,3),时间到第二天后,没法转储递增,会一直停留在4,没法删除,每天会有,久而久之,也会占用磁盘空间。所以需要定时删除。

设置完成

开启定时任务日志,以便查看定时任务是否执行。后续可取消。

重启rsyslog


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8228536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存