[.com快速翻译]Linux上的日志文件提供了很多关于系统上发生的事情的有用信息。以下命令可以帮助您理清数据,发现问题。Linux系统维护着大量的日志文件,其中许多您可能懒得看。但有些日志文件很珍贵,探索日志文件的方案也各不相同。查看一些系统日志并学习一些更轻松地探索日志数据的方法。日志文件轮换日志轮换首先存在问题。某些Linux日志文件是“循环”的。也就是说,系统存储了不止“一代”的日志文件,主要是为了防止它们占用过多的磁盘空间。然后压缩较旧的日志,但会保留一段时间。最终,一系列轮换日志文件中最旧的日志文件会在日志轮换过程中自动删除,但您仍然可以访问许多较旧的日志,以便您可以检查在过去几天或几周内添加的日志条目。如果您需要更详细地审查您正在跟踪的问题,并想知道保存了哪些类型的系统信息,只需cd进入/var/log目录并列出其内容。/var/log#lsalternatives.logbtmp.1kern.log.2.gzsyslog.3.gzalternatives.log.1cupskern.log.3.gzsyslog.4.gzalternatives.log.2.gzdist-upgradekern.log.4.gzsyslog.5.gzalternatives.log.3.gzdpkg.loglastlogsyslog.6.gzalternatives.log.4.gzdpkg.log.1mail.errsyslog.7.gzalternatives.log.5.gzdpkg.log.2.gzmail.err.1sysstatapport.logdpkg.log.3.gzmail.err.2.gztallylogapport.log.1dpkg.log.4.gzmail.err.3.gzufw.logaptdpkg.log.5.gzmail.err.4.gzufw.log.1atopfaillogmail.logufw.log.2.gzauth.logfontconfig.logmail.log.1ufw.log.3.gzauth.log.1gdm3mail.log.2.gzufw.log.4.gzauth.log.2.gzgpu-manager.logmail.log.3.gzunattended-upgradesauth.log.3.gzhpmail.log.4.gzwtmpauth.log.4.gzinstallerspeech-dispatcherwtmp.1boot.logjournalsyslogbootstrap.logkern.logsyslog.1btmpkern.log.1syslog.2.gz这是非常多的日志和日志目录,/var/log下有69个文件和目录,但如果算上那些目录下的文件,就有180个文件之多。$cd/var/log$ls|wc-l69$find.-typef-print|wc-l180如果你分析日志文件,你会清楚地看到哪几代是相同的基本日志。例如其中一个主要的日志文件:syslog文件被分为9个不同的文件。这代表一周的历史数据以及当前文件。大多数旧文件都经过压缩以节省空间。$ls-lsyslog*-rw-r-----1syslogadm588728Oct1520:42syslog-rw-r-----1syslogadm511814Oct1500:09syslog.1-rw-r-----1syslogadm31205Oct1400:06syslog.-2.gz-rwr-----1syslogadm34797Oct1300:06syslog.3.gz-rw-r-----1syslogadm61107Oct1200:08syslog.4.gz-rw-r-----1syslogadm31682Oct1100:06syslog.5.gz-rw-r-----1syslogadm32004Oct1000:07syslog.6.gz-rw-r-----1syslogadm32309Oct900:05syslog.7.gzsyslog文件包含来自许多不同系统服务的消息,cron、sendmail和内核本身是典型的少数系统服务。您还会看到用户会话和cron(计划任务)的影子。大多数Linux系统不再使用旧的消息和dmesg文件,这些文件多年来一直作为我们大多数系统消息的着陆点。相反,可以使用大量文件和一些特殊命令来帮助显示可能与您要查找的内容密切相关的日志信息。根据特定的文件,您可能只使用more或tail命令,或者您可以使用特定于文件的命令(例如who命令)从wtmp日志中提取用户登录数据。$whotmpshspts/12018-10-0508:42(192.168.0.10)shspts/12018-10-0809:41(192.168.0.10)shspts/12018-10-1114:00(192.168.0.10)shs:02018-10-1419:11(:0)shspts/02018-10-1419:16(192.168.0.25)shspts/02018-10-1507:39(192.168.0.25)shs:02018-10-1519:58(:0)dorypts/02018-10-1520:01(192.168.0.11)shspts/02018-10-1520:42(192.168.0.6)shspts/02018-10-1607:18(192.168.0.6)nemopts/12018-10-1607:46(192.168.0.14)同样,在运行tailfaillog命令后您可能看不到任何内容,但是像这样的命令会向您显示它全为0:#od-bcfaillog00000000000000000000000000000000000000000000000000000000000000000000000000000\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0*0076600当你尝试使用taillastlog命令时,你可能只会发现你需要使用lastlog命令来查看日志数据。所以这里是/var/log中的日志文件列表,以及它们包含的内容以及如何查看它们的一些描述。alternatives.log-来自update-alternatives的“运行”建议apport.log-有关已被拦截的崩溃的信息auth.log-使用的用户登录和身份验证机制boot.log-启动时间消息btmp-登录尝试失败dpkg.log-信息关于何时安装或删除软件包lastlog-最近登录(使用lastlog命令查看)faillog-有关失败登录尝试的信息;如果没有失败的登录尝试,则全为0(使用faillog命令查看)kern.log-内核日志消息mail.err-有关邮件服务器检测到的错误的信息mail.log-来自邮件服务器的信息syslog-系统服务日志ufw-防火墙日志wtmp-登录记录journalctlexcept/var除了/log中维护的日志文件外,还有systemd日志。虽然这个日志不是通常意义上的简单“日志文件”,但它代表了一堆关于用户和内核活动的重要信息。可以从系统上的多个来源获取此信息。要查看收集的信息,请使用journalctl命令。您将看到多少信息取决于您是否是adm组的成员。非adm用户看到的信息较少,但是adm组的成员可以访问很多数据,如这个例子所示,它只是告诉我们adm组成员可以查看多少行信息:$journalctl|wc-l666501有666000+行文本!为了减少到更不言自明的版本,您可能希望使用参数来自定义显示的内容。Journalctl的几个选项包括:--utc(将时间格式更改为UTC)-b(仅显示自上次启动以来添加的记录)-b-1(仅显示自上次启动到上次启动以来添加的记录)--since和--until(只显示在指定时间范围内添加的记录,例如--since"2018-10-15"--until"2018-10-1106:00"示例如下:$journalctl--since"2018-10-1613:28"--LogsbeginatMon2018-05-1415:16:11EDT,endatTue2018-10-1613:28:57EDT.--Oct1613:28:25butterflykernel:[UFWBLOCK]IN=enp0s25OUT=MAC=01:00:5e:00:00:01:02:Oct1613:28:25butterflykernel:[UFWBLOCK]IN=enp0s25OUT=MAC=01:00:5e:00:00:fb:00:Oct1613:28:57butterflysu[7784]:pam_unix(su:session):sessionclosedforuserrootOct1613:28:57butterflysudo[7783]:pam_unix(sudo:session):sessionclosedforuserrootlines1-5/5(END)您还可以只查看一项服务的日志条目。这可能是journalctl命令比较有用的功能之一:$journalctl-unenetworking.service--LogsbeginatMon2018-05-1415:16:11EDT,endatTue2018-10-1608:06:31EDTMay1415:16:12shs-Inspiron-530ssystemd[1]:StartingRaisenetworkinterfaces.May1415:16:12shs-Inspiron-530ssystemd[1]:StartedRaisenetworkinterfaces.May1415:49:18butterflysystemd[1]:StoppingRaisenetworkinterfaces...May1415:49:18butterflysystemd[1]:StoppedRaisenetworkinterfaces--4419:50butterflysystemd[1]:StartingRaisenetworkinterfaces...May1415:49:51butterflysystemd[1]:StartedRaisenetworkinterfaces.--Reboot--注意系统重启信息是如何显示在此输出中的。要列出服务,请尝试以下命令:$service--status-all|column[+]acpid[+]network-manager[-]alsa-utils[-]networking[-]anacron[-]plymouth[+]apparmor[-]plymouth-log[+]apport[-]pppd-dns[+]atd[+]procps[+]atop[-]quota[+]atopacct[-]quotarpc[+]avahi-daemon[-]rsync[-]bluetooth[+]rsyslog[-]console-setup.sh[-]saned[+]cron[+]sendmail[+]cups[+]speech-dispatcher[+]cups-browsed[-]spice-vdagent[+]dbus[+]ssh[-]dns-clean[+]sysstat[+]gdm3[-]thermald[+]grub-common[+]udev[-]hwclock.sh[+]ufw[+]irqbalance[+]unattended-upgrades[+]kerneloops[-]uuidd[-]keyboard-setup.sh[+]whoopsie[+]kmod[-]x11-common上面显示的内容中:+=active-=inactive?=nostatusoptionavailable此实用程序命令提供指示磁盘空间使用情况的简短报告:$journalctl--disk-usageArchivedandactivejournalstakeup824.1Minthefilesystem。如果您想关注某个进程,只需提供PID(截断的),如下所示。$journalctl_PID=787--LogsbeginatMon2018-05-1415:16:11EDT,endatTue2018-10-1608:25:17EDTAug0318:02:46butterflyapport[787]:*StartingautomaticcrashreportgeneraAug0318:02:46butterflyapport[787]--Sep1613:26:34butterflyatopacctd[787]:版本:2.3.0-2017/03/2509:59:59Sep1613:26:34butterflyatopacctd[787]:accountingto/run/pacct_source——重启——Oct0318:08:41butterflyapport[787]:*StartingautomaticcrashreportgeneraOct0318:08:41butterflyapport[787]:...done.--重启--Oct1514:07:11butterflysnapd[787]:AppArmorstatus:apparmorisenabledbutsOct1514:07:12butterflysnapd[787]:AppArmoris1abledarmorstatus7:apparmoris1abledarmorstatus7:appsbutterfly7:12.go:344:startedsnapd/2.35.2(serieOct1514:07:12butterflysnapd[787]:autorefresh.go:376:Cannotpreparauto-re注:systemdjournal的配置文件为/etc/systemd/journald.conf。原标题:更好地利用您的Linux日志,作者:SandraHenry-Stocker
