logrotate是一个日志文件管理工具。用来把旧文件轮转、压缩、删除,并且创建新的日志文件。我们可以根据日志文件的大小、天数等来转储,便于对日志文件管理,一般都是通过cron计划任务来完成的。logrotate的配置文件是/etc/logrotate.conf,通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下,通常linux发行版会默认已安装。

  • 1、新版本astercc2.6-rc1中已设置logrotate的自动日志管理动能,配置文件放置于/etc/logrotate.d/目录下。
  • 2、配置文件内logrotate参数说明

【missingok】: 在日志轮循期间任何错误将被忽略,例如“文件无法找到”之类的错误。
【compress】:在轮循任务完成后已轮循的归档将使用gzip进行压缩。
【nocompress】:不需要压缩时用这个参数。
【copytruncate】:用于还在打开中的日志文件把当前日志备份并截断。
【nocopytruncate】:备份日志文件但是不截断。
【create mode owner group】:使用指定的文件模式创建新的日志文件。
【nocreate】:不建立新的日志文件。
【delaycompress】:需要和“compres”一起使用,转储的日志文件到下一次转储时才压缩。
【nodelaycompress】:覆盖 delaycompress 选项转储同时压缩。
【errors address】:专储时的产生的错误信息发送到指定的Email地址。
【ifempty】:即使是空文件也转储,这个是logrotate的缺省选项。
【notifempty】:如果是空文件的话不转储。
【mail address】:把转储的日志文件发送到指定的Email地址。
【nomail】:转储时不发送日志文件。
【olddir directory】:转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统。
【noolddir】:转储后的日志文件和当前日志文件放在同一个目录下。
【prerotate/endscript】:在转储以前需要执行的命令可以放入这个对中,这两个关键字必须单独成行。
【postrotate/endscript】:在转储以后需要执行的命令可以放入这个对中,这两个关键字必须单独成行。
【sharedscripts】:所有的日志文件都轮转完毕后统一执行一次脚本。
【daily】:指定转储周期为每天。
【weekly】:指定转储周期为每周。
【monthly】:指定转储周期为每月。
【rotate count】:指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份。
【size size】:当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB。

  • 3、astercc内几个logrotate配置实例说明

/var/log/php-fpm/*log {
    missingok               # 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
    notifempty              # 如果是空文件的话,不转储。
    sharedscripts           # 所有的日志文件都轮转完毕后统一执行一次postrotate脚本。
    delaycompress           # 转储的日志文件到下一次转储时才压缩。
    postrotate              # 执行脚本。
	/bin/kill -SIGUSR1 `cat /var/run/php-fpm/php-fpm.pid 2>/dev/null` 2>/dev/null || true
    endscript               # 结束脚本。
}

/var/log/mysqld.log {
        create 640 mysql mysql      # 创建日志文件640权限,文件拥有者mysql:mysql
        notifempty                  # 如果是空文件的话,不转储。
        daily                       # 每天执行一次
        rotate 3                    # 保留5个轮转文件
        missingok                   # 忽略所有错误
        compress                    # 通过gzip压缩转储旧的日志
        postrotate                  # 执行脚本
	#just if mysqld is really running
	  if test -x /usr/bin/mysqladmin && \
	     /usr/bin/mysqladmin ping &>/dev/null
	  then
	     /usr/bin/mysqladmin flush-logs
	  fi
        endscript                   # 结束脚本
}

zh/常见问题及解答/astercc的logrotate日志管理工具说明.txt · 最后更改: 2017/12/12 03:05 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki