Linux系统日志的相关命令、文件和管理工具

Linux系统日志的相关命令、文件和管理工具

文章目录
[隐藏]
  • logrotate命令

    • logrotate命令示例

    • logrotate命令参数


  • 用syslog记录日志

    • 日志的级别

    • 系统常见重要日志

    • logger命令


日志文件是Linux系统维必不可少的部分,日志文件会随着时间的推移变的越来越大,需要使用一种被称为轮替的技术来限制日志的体积,一旦超过了限制的大小,就对它的内容进行抽取,同时将日志文件中的旧条目存储到归档文件中,以便日后的查阅。

logrotate命令

logrotate命令是一个日志文件管理工具,能够将日志文件的大小限制在给定的范围之内,各种应用程序会将信息添加到日志文件中,最新添加的信息总是保存在日志文件的尾部,logrotate根据配置文件扫描特定的日志文件。

logrotate的配置目录位于/etc/logrotate.d/,这个目录中已经包含了还能多其他程序的日志文件配置,打开就可以发现。

logrotate命令示例

【示例】创建一个日志文件配置:

cat /etc/logrotate.d/test
/var/log/test.log {
    missingok
    notifempty
    size 30k
    commpress
    weekly
    rotate 5
    create 0600 root root
}

以上是全部配置,其中/var/log/test.log是指定了日志文件路径,旧的日志文件归档之后也放在同一个目录下,参数解释:

  • missingok如果日志文件丢失,则忽略,然后返回(不对日志文件进行轮替)。

  • notifempty仅当源日志文件非空时才会对其进行轮替。

  • size 30k限制实施轮替的日志文件的大小,可以用1M表示1MB。

  • commpress允许用gzip对较旧的日志进行压缩。

  • weekly指定进行轮替的时间间隔,可以是weekly、yearly、daily。

  • rotate 5需要保存的就日志归档数量,这里是5,归档后的文件名将会是test.log.1.gz、test.log.2.gz....

  • create 0600 root root指定所要创建的归档文件的模式、用户、用户组。

logrotate命令参数

参数 功能
compress 通过gzip压缩转储以后的日志。
nocompress 不需要压缩时,用这个参数。
copytruncate 用于还在打开中的日志文件,把当前日志备份并截断。
nocopytruncate 备份日志文件但是不截断。
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件。
nocreate 不建立新的日志文件。
delaycompress和compress 一起使用时,转储的日志文件到下一次转储时才压缩。
nodelaycompress 覆盖delaycompress选项,转储同时压缩。
errors address 专储时的错误信息发送到指定的Email地址。
ifempty 即使是空文件也转储,这个是logrotate的缺省选项。
notifempty 如果是空文件的话,不转储。
mail address 把转储的日志文件发送到指定的E-mail地址。
nomail 转储时不发送日志文件。
olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统。
noolddir 转储后的日志文件和当前日志文件放在同一个目录下。
prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行。
postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行。
daily 指定转储周期为每天。
weekly 指定转储周期为每周。
monthly 指定转储周期为每月。
rotate count 指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份。
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~。
size size功能 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem)。

用syslog记录日志

日志文件有助于帮助我们推断系统出现的故障,因此在系统管理中要善于分析日志,在编写脚本、程序时,应当将程序执行过程记录在日志文件中。syslog日志配置文件位置:/etc/syslog.conf

日志的级别

日志的级别分为七级,从紧急程度由高到底:

  • emerg系统已经不可用,级别为紧急。

  • alert警报,需要立即处理和解决。

  • crit既将发生,得需要预防,事件就要发生。

  • warnig警告。

  • err错误信息,普通的错误信息。

  • notice提醒信息,很重要的信息。

  • info通知信息,属于一般信息。

  • debug这是调试类信息。

系统常见重要日志

  • /var/log/boot.log系统引导事件,就是开机自检过程信息。

  • /var/log/messages发布内核启动信息。

  • /var/log/audit/audit.log用户认证日志。

  • /var/log/dmesg系统启动信息。

  • /var/log/cron该日志文件记录crontab守护进程crond所派生的子进程的动作。

  • /var/log/maillog记录了发送到系统或从系统发出的邮件。

  • /var/log/xferlogFTP会话日志,记录用户向FTP服务器或从服务器拷贝了什么文件。

  • /var/log/kernlog内核消息,默认没有开启。需要在/etc/syslog.conf文件中开启。

  • /var/log/Xorg.0.logX-Window服务日志。

用户登录情况

  • /var/log/lastlog记录最近成功登录事件和最后一次登录失败事件,由login生成。

  • /var/log/wtmp永久记录每个用户登录、注销及系统的启动、停机事件。

  • /var/run/utmp当前登录用户信息。随着用户登录注销不断变化,只保留当时联机的用户记录,不永久保留。

logger命令

/var/log中创建并写入日志信息是由syslog协议处理的,是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用logger命令通过syslogd记录日志。

【示例】要向syslog文件/var/log/messages中记录日志信息:

logger this is a test log line

输出:
tail -n 1 messages
Jan  5 10:07:03 localhost root: this is a test log line

如果要记录特定的标记(tag)可以使用:

logger -t TAG this is a test log line

输出:
tail -n 1 messages
Jan  5 10:37:14 localhost TAG: this is a test log line



你可能感兴趣的:(配置文件,应用程序,管理工具)