-
2021-11-17 13:53:52
linux查看系统日志常见命令以及方法
在日常工作中,为了排查定位问题,经常需要登录到linux系统,查看异常error日志,本文列举一些常见命令。
一、head
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
命令格式:
head [参数] [文件]参数:
-n<行数> 显示的行数。- 显示 service.log 文件的前20行日志
head -n 20 service.log
二、tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 内容更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]参数:
-f 循环读取
-n<行数> 显示文件的尾部 n 行内容- 实时读取 service.log 日志文件的更新内容
tail -f service.log
此时会一直实时刷新日志,crtl + c 跳出
- 显示 service.log 日志文件最后20行内容
tail -n 20 service.log or tail -n -20 service.log
- 显示 service.log 日志文件第 20 行至文件末尾
tail -n +20 service.log
三、cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
命令格式:
cat [参数] [文件]参数:
-n 或 --number:由 1 开始对所有输出的行数编号。
- 查看 service.log 日志文件所有内容,并显示行号
cat -n service.log
四、grep
Linux grep 命令用于查找文件里符合条件的字符串。
命令格式:
grep [参数] [范本样式] [文件或目录…]参数:
-C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容
–color=auto : 高亮颜色显示
-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
-i 或 --ignore-case : 忽略字符大小写的差别
-e<范本样式> 或 --regexp=<范本样式> : 根据正则表达式匹配文件中对应的行- 查看 service.log 日志文件中匹配指定字符串的行
grep '被查找的字符' service.log
- 查看 service.log 日志文件中匹配指定字符串的行(不区分大小写)
grep -i '被查找的字符' service.log
- 查看 service.log 日志文件中与正则表达式匹配的行
grep -e '正则表达式' service.log
- 查看 service.log 日志文件中,除了显示符合样式的那一行之外,并显示该行之前以及之后的内容
grep -C 10 '被查找的字符' service.log
- 查看 service.log 日志文件中满足样式的行,高亮显示
grep --color=auto '被查找的字符' service.log
五、查看日志的方法
- 第一种方式
先根据关键字定位行数,之后查看对应行数对应的日志信息
定位关键字所在行数,例如关键字为:error
cat -n service.log | grep 'error'
命令返回结果如下:
812 2021-11-17 at 10:10:10.239 CST | ERROR | ...XXX... 813 2021-11-17 at 10:10:10.239 CST | ERROR | ...XXX...
然后执行如下命令,输出812行以及之后的9行,一共10行数据
cat service.log | tail -n +812 | head -n 10
命令解释:
tail -n +812 : 从812行开始展示
head -n 10 : 显示前面10行- 第二种方式
查看关键字"error"前后10行数据,并高亮显示
cat service.log | grep -C 10 --color=auto 'error'
引用:
1.https://www.runoob.com/linux/linux-command-manual.html更多相关内容 -
linux 如何查看系统日志
2021-05-11 21:53:09Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/...Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。
日志类型
下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:类型说明
auth用户认证时产生的日志,如login命令、su命令。
authpriv与 auth 类似,但是只能被特定用户查看。
console针对系统控制台的消息。
cron系统定期执行计划任务时产生的日志。
daemon某些守护进程产生的日志。
ftpFTP服务。
kern系统内核消息。
local0.local7由自定义程序使用。
lpr与打印机活动有关。
mail邮件日志。
mark产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。
news网络新闻传输协议(nntp)产生的消息。
ntp网络时间协议(ntp)产生的消息。
user用户进程。
uucpUUCP子系统。
日志优先级
常见的日志优先级请见下标:优先级说明
emerg紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert需要立即修复,例如系统数据库损坏。
crit危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err一般错误消息。
warning警告。
notice不是错误,但是可能需要处理。
info通用性消息,一般用来提供有用信息。
debug调试程序产生的信息。
none没有优先级,不记录任何日志消息。
常见日志文件
所有的系统应用都会在 /var/log 目录下创建日志文件,或创建子目录再创建日志文件。例如:文件/目录说明
/var/log/boot.log开启或重启日志。
/var/log/cron计划任务日志
/var/log/maillog邮件日志。
/var/log/messages该日志文件是许多进程日志文件的汇总,从该文件可以看出任何***企图或成功的***。
/var/log/httpd 目录Apache HTTP 服务日志。
/var/log/samba 目录samba 软件日志
/etc/syslog.conf 文件
/etc/syslog.conf 是 syslog 的配置文件,会根据日志类型和优先级来决定将日志保存到何处。典型的 syslog.conf 文件格式如下所示:*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @see.xidian.edu.cn
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。对配置文件的几点说明:日志类型和优先级由点号(.)分开,例如 kern.debug 表示由内核产生的调试信息。
kern.debug 的优先级大于 debug。
星号(*)表示所有,例如 *.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。
可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。
对日志的操作包括:将日志输出到文件,例如 /var/log/maillog 或 /dev/console。
将消息发送给用户,多个用户用逗号(,)分隔,例如 root, amrood。
通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。
将消息发送给其他主机上的 syslog 进程,这时 /etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。
logger 命令
logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。logger命令的语法为:logger [-i] [-f filename] [-p priority] [-t tag] [message...]
每个选项的含义如下:选项说明
-f filename将 filename 文件的内容作为日志。
-i每行都记录 logger 进程的ID。
-p priority指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。
-t tag使用指定的标签标记每一个记录行。
message要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。
例如,将ping命令的结果写入日志:$ ping 192.168.0.1 | logger -it logger_test -p local3.notice&
$ tail -f /var/log/userlog
Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms
ping命令的结果成功输出到 /var/log/userlog 文件。命令 logger -it logger_test -p local3.notice 各选项的含义:-i:在每行都记录进程ID;
-t logger_test:每行记录都加上“logger_test”这个标签;
-p local3.notice:设置日志类型和优先级。
日志转储
日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。大多数Linux发行版使用 logrotate 或 newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。例如,规定邮件日志 /var/log/maillog 超过1G时转储,每周一次,那么每隔一周 logrotate 进程就会检查 /var/log/maillog 文件的大小:如果没有超过1G,不进行任何操作。
如果在1G~2G之间,就会创建新文件 /var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。
如果在2G~3G之间,会继续创建新文件 /var/log/maillog.2,并将 /var/log/maillog.1 的内容转移到该文件,将 /var/log/maillog 的内容转移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。
可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长),以保持当前日志文件和转存后的日志文件不超过指定大小。logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。可以通过 cat 命令查看它的内容:$cat /etc/logrotate.conf
# see "man logrotate" for details //可以查看帮助文档
# rotate log files weekly
weekly //设置每周转储一次
# keep 4 weeks worth of backlogs
rotate 4 //最多转储4次
# create new (empty) log files after rotating old ones
create //当转储后文件不存储时创建它
# uncomment this if you want your log files compressed
#compress //以压缩方式转储
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志文件的转储方式,包含在该目录下
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数
monthly //每月转储
create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664
rotate 1 //最多转储一次
}
注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。include 非常有用,一些程序会把转储日志的配置文件放在 /etc/logrotate.d 目录,这些配置文件会覆盖或增加 /etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用 /etc/logrotate.conf 的默认配置。所以,建议将 /etc/logrotate.conf 作为默认配置文件,第三方程序在 /etc/logrotate.d 目录下自定义配置文件。logrotate 也可以作为命令直接运行来修改配置文件。
系统日志是由一个名为syslog的服务管理的,如以下日志文件都是由syslog日志服务驱动的:
/var/log/message 系统启动后的信息和错误日志,记录Linux操作系统常见的系统和服务错误信息 /var/log/secure Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/dmesg这个是硬件的
系统:
# uname -a # 查看内核/操作系统/CPU信息
# cat /etc/issue
# cat /etc/redhat-release # 查看操作系统版本
# cat /proc/cpuinfo # 查看CPU信息
# hostname # 查看计算机名
# lspci -tv # 列出所有PCI设备
# lsusb -tv # 列出所有USB设备
# lsmod # 列出加载的内核模块
# env # 查看环境变量
资源:
# free -m # 查看内存使用量和交换区使用量
# df -h # 查看各分区使用情况
# du -sh # 查看指定目录的大小
# grep MemTotal /proc/meminfo # 查看内存总量
# grep MemFree /proc/meminfo # 查看空闲内存量
# uptime # 查看系统运行时间、用户数、负载
# cat /proc/loadavg # 查看系统负载
磁盘和分区:
# mount | column -t # 查看挂接的分区状态
# fdisk -l # 查看所有分区
# swapon -s # 查看所有交换分区
# hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE # 查看启动时IDE设备检测状况
网络:
# ifconfig # 查看所有网络接口的属性
# iptables -L # 查看防火墙设置
# route -n # 查看路由表
# netstat -lntp # 查看所有监听端口
# netstat -antp # 查看所有已经建立的连接
# netstat -s # 查看网络统计信息
进程:
# ps -ef # 查看所有进程
# top # 实时显示进程状态(另一篇文章里面有详细的介绍)
用户:
# w # 查看活动用户
# id # 查看指定用户信息
# last # 查看用户登录日志
# cut -d: -f1 /etc/passwd # 查看系统所有用户
# cut -d: -f1 /etc/group # 查看系统所有组
# crontab -l # 查看当前用户的计划任务
服务:
# chkconfig –list # 列出所有系统服务
# chkconfig –list | grep on # 列出所有启动的系统服务
程序:
# rpm -qa # 查看所有安装的软件包
-
Linux系统日志及日志分析
2021-05-13 15:41:21Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/...Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。
大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。
Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。
日志类型
下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:
类型
说明
auth
用户认证时产生的日志,如login命令、su命令。
authpriv
与 auth 类似,但是只能被特定用户查看。
console
针对系统控制台的消息。
cron
系统定期执行计划任务时产生的日志。
daemon
某些守护进程产生的日志。
ftp
FTP服务。
kern
系统内核消息。
local0.local7
由自定义程序使用。
lpr
与打印机活动有关。
mail
邮件日志。
mark
产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。
news
网络新闻传输协议(nntp)产生的消息。
ntp
网络时间协议(ntp)产生的消息。
user
用户进程。
uucp
UUCP子系统。
日志优先级
常见的日志优先级请见下标:
优先级
说明
emerg
紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert
需要立即修复,例如系统数据库损坏。
crit
危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err
一般错误消息。
warning
警告。
notice
不是错误,但是可能需要处理。
info
通用性消息,一般用来提供有用信息。
debug
调试程序产生的信息。
none
没有优先级,不记录任何日志消息。
常见日志文件
所有的系统应用都会在 /var/log 目录下创建日志文件,或创建子目录再创建日志文件。例如:
文件/目录
说明
/var/log/boot.log
开启或重启日志。
/var/log/cron
计划任务日志
/var/log/maillog
邮件日志。
/var/log/messages
该日志文件是许多进程日志文件的汇总,从该文件可以看出任何***企图或成功的***。
/var/log/httpd 目录
Apache HTTP 服务日志。
/var/log/samba 目录
samba 软件日志
/etc/syslog.conf文件
/etc/syslog.conf 是 syslog 的配置文件,会根据日志类型和优先级来决定将日志保存到何处。典型的 syslog.conf 文件格式如下所示:
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @see.xidian.edu.cn
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。
对配置文件的几点说明:
· 日志类型和优先级由点号(.)分开,例如 kern.debug 表示由内核产生的调试信息。
· kern.debug 的优先级大于 debug。
· 星号(*)表示所有,例如 *.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。
· 可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。
对日志的操作包括:
· 将日志输出到文件,例如 /var/log/maillog 或 /dev/console。
· 将消息发送给用户,多个用户用逗号(,)分隔,例如 root, amrood。
· 通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。
· 将消息发送给其他主机上的 syslog 进程,这时 /etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。
logger命令
logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。
logger命令的语法为:
logger [-i] [-f filename] [-p priority] [-t tag] [message...]
每个选项的含义如下:
选项
说明
-f filename
将 filename 文件的内容作为日志。
-i
每行都记录 logger 进程的ID。
-p priority
指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。
-t tag
使用指定的标签标记每一个记录行。
message
要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。
例如,将ping命令的结果写入日志:
$ ping 192.168.0.1 | logger -it logger_test -p local3.notice&
$ tail -f /var/log/userlog
Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
Oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms
ping命令的结果成功输出到 /var/log/userlog 文件。
命令 logger -it logger_test -p local3.notice 各选项的含义:
· -i:在每行都记录进程ID;
· -t logger_test:每行记录都加上“logger_test”这个标签;
· -p local3.notice:设置日志类型和优先级。
日志转储
日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。
syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。
大多数Linux发行版使用 logrotate 或 newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。
例如,规定邮件日志 /var/log/maillog 超过1G时转储,每周一次,那么每隔一周 logrotate 进程就会检查 /var/log/maillog 文件的大小:
· 如果没有超过1G,不进行任何操作。
· 如果在1G~2G之间,就会创建新文件 /var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。
· 如果在2G~3G之间,会继续创建新文件 /var/log/maillog.2,并将 /var/log/maillog.1 的内容转移到该文件,将 /var/log/maillog 的内容转移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。
可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长),以保持当前日志文件和转存后的日志文件不超过指定大小。
logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。
可以通过 cat 命令查看它的内容:
$cat /etc/logrotate.conf
# see "man logrotate" for details //可以查看帮助文档
# rotate log files weekly
weekly //设置每周转储一次
# keep 4 weeks worth of backlogs
rotate 4 //最多转储4次
# create new (empty) log files after rotating old ones
create //当转储后文件不存储时创建它
# uncomment this if you want your log files compressed
#compress //以压缩方式转储
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志文件的转储方式,包含在该目录下
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数
monthly //每月转储
create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664
rotate 1 //最多转储一次
}
注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。
include 非常有用,一些程序会把转储日志的配置文件放在 /etc/logrotate.d 目录,这些配置文件会覆盖或增加 /etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用 /etc/logrotate.conf 的默认配置。
所以,建议将 /etc/logrotate.conf 作为默认配置文件,第三方程序在 /etc/logrotate.d 目录下自定义配置文件。
logrotate 也可以作为命令直接运行来修改配置文件。
-
如何在Ubuntu上查看和写入系统日志文件
2021-08-13 07:22:10大多数日志条目通过系统日志记录守护程序syslogd,并写入系统日志。Ubuntu包括多种查看这些日志的方式,以图形方式或从命令行。 您还可以将自己的日志消息写入系统日志,在脚本中特别有用。以图形方式查看日志要...Linux将大量事件记录到磁盘,它们大多以纯文本形式存储在/ var / log目录中。 大多数日志条目通过系统日志记录守护程序syslogd,并写入系统日志。
Ubuntu包括多种查看这些日志的方式,以图形方式或从命令行。 您还可以将自己的日志消息写入系统日志,在脚本中特别有用。
以图形方式查看日志
要使用易于使用的图形应用程序查看日志文件,请从Dash打开日志文件查看器应用程序。
日志文件查看器默认显示许多日志,包括系统日志(syslog),包管理器日志(dpkg.log),认证日志(auth.log)和图形服务器日志(Xorg.0.log)。 您可以在单个窗口中查看所有日志 - 当添加新的日志事件时,它将自动出现在窗口中,并将以粗体显示。 您也可以按Ctrl + F搜索日志消息,或使用过滤器菜单过滤日志。
如果您有其他日志文件要查看 - 例如,特定应用程序的日志文件 - 您可以单击文件菜单,选择打开,并打开日志文件。 它将出现在列表中的其他日志文件旁边,并将像其他日志一样被监视和自动更新。
写入系统日志
该记录仪实用程序允许您快速编写消息到您的系统日志,一个单一的,简单的命令。 例如,要将消息Hello World写入系统日志,请使用以下命令:logger“Hello World”
您还可以指定其他信息 - 例如,如果您在脚本中使用logger命令,则可能需要包括脚本的名称:logger -t ScriptName“Hello World”
在终端中查看日志
dmesg命令会显示Linux内核消息的缓冲区,这是存储在内存中。 运行这个命令,你会得到很多输出。
要过滤此输出,并搜索你感兴趣的消息,你可以用管道到grep:dmesg | grep东西
也可通过管道dmesg命令的输出少 ,这使您可以通过自己的步调消息滚动。 要退出较少,按Q键。dmesg | 减
如果一个grep搜索产生大量的结果,你可以管道输出也减少:dmesg | grep东西| 减
除了打开位于/ var日志文件/登录任何文本编辑器,你可以使用cat命令打印日志文件的内容(或任何其他文件)到终端:cat / var / log / syslog
像上面的dmesg命令一样,这将产生大量的输出。 您可以使用grep和less命令与输出的工作:grep something / var / log / syslog
less / var / log / syslog
其他有用的命令包括头部和尾部的命令。 head打印文件中的前n行,而tail打印文件中的最后n行 - 如果要查看最近的日志消息,tail命令特别有用。head -n 10 / var / log / syslog
tail -n 10 / var / log / syslog
一些应用程序可能不会写入系统日志,并可能生成自己的日志文件,您可以以相同的方式操作 - 通常也会在/ var / log目录中找到它们。 例如,Apache Web服务器创建包含其日志的/ var / log / apache2目录。
-
linux系统日志在哪里
2021-05-09 07:50:53Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。1、大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /... -
mac os 查看系统日志_如何在Mac上查看系统日志
2020-09-15 00:11:47mac os 查看系统日志Your Mac keeps system logs, which can help diagnose and troubleshoot problems with macOS and your installed applications. These logs are stored as plain-text log files on your Mac’... -
系统日志
2018-04-14 09:04:43【Linux日志】系统日志及分析Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/... -
Windows系统日志分析
2021-07-30 22:37:28系统日志:System.evtx (系统组件等日志) 应用程序日志: Application.evtx (应用程序等日志) 安全日志:Security.evtx(系统登录等日志) win+r打开运行窗口中输入eventvwr.msc打开时间查看器,或者cmd中输入eventvwr... -
Linux查看系统日志
2020-11-16 11:35:44Linux系统在运行的程序通常会把一些系统消息和错误消息写入对应的系统日志中,若是一旦出现问题,用户就可以通过查看日志来迅速定位,及时解决故障,所以学会查看日志文件也是在日常维护中很重要的操作。 1、Linux... -
Ubuntu系统日志分析
2019-03-12 10:53:33可视化的Ubuntu可在系统日志中查看日志 1. 日志查看器 Xorg 是显示服务 auth是安全验证 boot是启动 daemon是进程 kern是内核 messages是消息 syslog是系统 user是用户 2.连接时间的日志 连接时间日志一般... -
【安全-安全检查】操作系统日志分析(Linux+Windows)
2019-11-06 10:32:02Linux 中日志包括以下几类:登录时间日志子系统、进程统计日志子系统、错误日志子系统等。 登录时间日志子系统: 登录时间通常会与多个程序的执行产生关联,一般情况下,将对应的记录写到/var/log/wtmp 和/var/run/... -
系统日志的处理方法和系统日志的处理平台
2016-05-28 12:53:25本发明实施例提供的一种系统日志的处理方法包括:访问生成系统日志的设备,从该设备采集系统日志;将采集到的系统日志的格式与指定的设备模板进行匹配,确认各系统日志对应的设备类型;根据各系统日志的设备类型,... -
修改linux系统日志保存天数
2021-05-14 14:37:49一、环境介绍linux系统中/var/log/目录日志默认保存四周并不生成系统日志(syslog.log),当用户有规定保存多少天时才去进行修改。系统日志路径/var/log/目录下二、修改方法1、添加系统日志文件默认RedHat Linux不生成... -
Java系统日志管理
2018-07-06 15:24:06在一个系统中日志管理是一个很重要的部分,因为当系统发布到线网后出了问题只能看系统日志了,这个时候系统日志起到了一个错误排查功能,同时也可以通过系统日志统计用户吞吐量等等,总之系统日志是系统管理一个重点... -
Linux 查看系统日志命令
2020-01-11 13:28:19Linux 系统中有很多重要的日志文件,这些文件可以保存很多访问 Linux的日志记录,这些日志大多存放在/var/log目录下和/run目录下,但是这些日志中,有些并不能使用cat,vi,more等命令打开,而是需要用到一些特殊的... -
如何在Ubuntu 18.04 LTS上查看系统日志文件
2021-05-12 09:22:46Linux管理员应该能够阅读和理解所有Linux系统生成的各种消息,以便对问题进行故障排除。这些消息称为日志,由Linux及其上运行的应用程序启动。 Linux通过各种配置文件,程序,命令和守护程序不断创建,存储和回收... -
Linux查看系统日志常用指令
2021-08-07 11:15:52文章目录日志查看常用方式其他操作 日志查看 常用方式 tail:尾部开始查看文件 -n:显示尾部n行内容 tail -n 10 filename 查询日志尾部最后10行的日志 tail -n +10 filename 查询日志前10行之后的所有内容 -f:... -
系统日志的了解
2018-10-13 14:28:34一、什么是系统日志? 系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用... -
闲聊Windows系统日志
2018-12-29 21:24:10* 本文作者:TomKing,本文属FreeBuf原创奖励计划,未经许可禁止...不过现在都要求保留至少6个月的日志,因此这种原因会少了很多,然而我对于Windows中系统日志不了解,在解读时经常摸不着头脑,所以就认真的分析了e... -
业务系统日志记录规范总结
2019-08-28 16:01:09业务系统日志记录规范 注意 应用中应该充满了日志记录信息,日志甚至比逻辑代码还要多; 集成 seluth ,开启消息链路;不开启日志上传,不集成 zipkin; 应该避免日志记录过程中出现异常,比如 log.debug(requst... -
linux系统日志文件的详细介绍
2020-03-04 20:37:39日志文件用于记录linux系统的各种运行信息的文件,相当于linux主机的日记,不同的日志文件记载了不同类型的信息,如Linux内核消息、用户登录事件、程序错误等。. 日志文件对于诊断和解决问题很有帮助,因为linux运行... -
通过系统日志采集大数据
2019-06-25 21:59:58许多公司的平台每天都会产生大量的日志,并且一般为流式数据,如搜索引擎的 pv 和查询等。处理这些日志需要特定的日志系统,这些系统需要具有以下...目前使用最广泛的、用于系统日志采集的海量数据采集工具有 Had... -
CentOS7-快速查看系统日志
2020-12-21 10:55:15前言systemd拥有强大的解决与系统日志记录功能-systemd-journald。日志目录一般是在/var/log/journal,记录的是二进制文件,我们可以通过journalctl进行查看。常用的操作显示所有日志:journalctl查看启动只有的所有... -
基于系统日志分析进行异常检测
2019-11-07 11:04:40日志解析:https://github.com/logpai/logparser 异常检测:https://github.com/logpai/loglizer 预备知识:需要对逻辑回归、决策树、SVM、PCA、聚类等有一些了解 论文原文:... -
系统日志的重要性
2019-04-26 10:11:29系统日志的重要性 与一个简单的算法不同,一个合格的系统不仅仅要求具有运行的高效和计算的准确,同时又必须兼顾稳定性、可靠性。其次,对于开发人员来说,又必须具有可拓展性和可维护性。各方面都必须很完善,... -
ELK日志收集系统介绍及过期系统日志清理
2020-03-12 15:57:39使用ELK做系统服务日志的收集,随着使用的时间和用户量的增长,ES的存储压力会越来越大,而一些过期日志又没什么参考价值,如果你们系统的服务日志索引名也是按日期去切割的,你就可以参考一下本文的清理ES索引脚本 ... -
Android 系统日志写入文件
2018-07-04 20:04:25目录介绍 1.业务需求 2.目前有那些做法及问题 3.自定义log工具类,一边打印日志一边写入文件 ...4.在application开启线程池进行日志打印 ...5.写一个service将系统日志写到...要求将app的系统日志都写入到指定的文... -
Linux 之系统日志篇
2018-04-26 21:20:081、系统日志的分类 /var/log/messages ##系统服务及日志,包括服务的信息,报错等等/var/log/secure ##系统认证信息日志/var/log/maillog ##系统邮件服务信息/var/log/cron ##系统定时任务信息/var/lo...