linux操作系统⽇志查看,linux如何查看系统⽇志
Linux系统拥有⾮常灵活和强⼤的⽇志功能,可以保存⼏乎所有的操作记录,并可以从中检索出我们需要的信息。⼤部分Linux发⾏版默认的⽇志为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置⽂件为 /f,任何希望⽣成⽇志的程序都可以向 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/.conf ⽂件
/f 是 syslog 的配置⽂件,会根据⽇志类型和优先级来决定将⽇志保存到何处。典型的 f ⽂件格式如下所⽰:*.err;kern.ice /dev/console
ice          /var/log/messages
lpr.info                    /var/log/lpr.log
mail.*                      /var/log/mail.log
ftp.*                        /var/log/ftp.log
auth.*                      @see.xidian.edu
auth.*                      root,amrood
<                  /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 进程,这时 /f ⽂件后⾯⼀列为以@开头的主机名,例如@see.xidian.edu。linux查看当前文件夹内容
logger 命令
logger 是Shell命令,可以通过该命令使⽤ syslog 的系统⽇志模块,还可以从命令⾏直接向系统⽇志⽂件写⼊⼀⾏信息。logger命令的语法为:logger [-i] [-f filename] [-p priority] [-t tag] []
每个选项的含义如下:选项说明
-f filename将 filename ⽂件的内容作为⽇志。
-i每⾏都记录 logger 进程的ID。
-p priority指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 ice。
-t tag使⽤指定的标签标记每⼀个记录⾏。
message要写⼊的⽇志内容,多条⽇志以空格为分隔;如果没有指定⽇志内容,并且 -f filename 选项为空,那么会把标准输⼊作为⽇志内容。
例如,将ping命令的结果写⼊⽇志:$ ping 192.168.0.1 | logger -it logger_test -ice&
$ 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 -ice 各选项的含义:-i:在每⾏都记录进程ID;
-t logger_test:每⾏记录都加上“logger_test”这个标签;
-ice:设置⽇志类型和优先级。
⽇志转储
⽇志转储也叫⽇志回卷或⽇志轮转。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 的主要配置⽂件是 /f,/etc/logrotate.d ⽬录是对 /f 的补充,或者说为了不使 /f 过⼤⽽设置。可以通过 cat 命令查看它的内容:$cat /f
# 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 ⽬录,这些配置⽂件会覆盖或增加 /f 的配置项,如果没有指定相关配置,那么采⽤ /f 的默认配置。所以,建议将 /f 作为默认配置⽂件,第三⽅程序
在 /etc/logrotate.d ⽬录下⾃定义配置⽂件。logrotate 也可以作为命令直接运⾏来修改配置⽂件。
系统⽇志是由⼀个名为syslog的服务管理的,如以下⽇志⽂件都是由syslog⽇志服务驱动的:
/var/log/message 系统启动后的信息和错误⽇志,记录常见的系统和服务错误信息  /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 # 查看系统所有⽤户

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。