linux服务器日志转储

配置好项目之后,Apache,MySQL等会产生日志,为了方便管理,将其按照一定的间隔时间进行转储

1.Apache日志

 在配置文件中加入以下两句:

 CustomLog"|/usr/sbin/rotatelogs /var/log/httpd/access-80.log.%Y%m%d 86400 540"combined

 ErrorLog"|/usr/sbin/rotatelogs /var/log/httpd/error-80.log.%Y%m%d 86400 540"

 重启Apache之后就可以在/var/log/httpd下看到相应的日志

 上面的语句中用到的/usr/sbin/rotatelogs是一个配合Apache管道日志功能使用的程序,

 rotatelogs[ -l ] [ -f ] logfile rotationtime|filesizeM [ offset ]

参数解释:

-l:表示使用本地时间代替GMT时间作为时间基准

Logfile:表示加上基准时间就是日志文件名。

Rotationtime:表示日志文件滚动的以秒为单位的间隔时间

filesizeM:表示指定以filesizeM文件大小滚动,而不是按照时间或时差滚动

offset:表示相对于UTC的时差的分钟数。如果省略,则假定为"0"并使用UTC时间。比如,要指定UTC时差为"-5小时"的地区的当地时间,则此参数应为"-300"

 例如下面的这个:

 CustomLog"|/usr/sbin/rotatelogs /var/log/httpd/access-80.log.%Y%m%d 86400 540"combined

 这个配置会建立/var/log/httpd/access-80.log文件,后面的%Y%m%d表示的是日志 启动时的当前系统时间,86400s表示的是24小时,即过了这些时间会产生一个新的日志文件,540表示9小时,时间偏移。

 后面的combined表示的是复合格式

 ErrorLog "|/usr/sbin/rotatelogs/var/log/httpd/error-80.log.%Y%m%d 5M"

 表示error_log增长到5M的时候滚动该日志

2.MySQL日志

 在MySQL的配置文件中,指定相应文件的存放位置

[mysqld]
log-bin=mysql-bin
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
log=/var/log/mysql/mysql.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# slow_queries
long-query-time=1
slow_query_log =/var/log/mysql/slow.log

[mysqld_safe]
log-error=/var/log/mysql/mysql_error.log
pid-file=/var/run/mysqld/mysqld.pid

  编辑文件/etc/logrotate.d/mysqld,

/var/log/mysql/*.log {
        daily
        rotate 14
        missingok
        compress
        delaycompress
        notifempty
        create 0640 mysql root
        postrotate
        if [ -x /usr/bin/mysqladmin ]; then
                mysqladmin="/usr/bin/mysqladmin --defaults-file=/etc/mysql/myadm
in.cnf"
                if [ -z "`$mysqladmin ping 2> /dev/null`" ]; then
                        if ps cax | grep -q mysqld; then
                                exit 1
                        fi
                else
                        $mysqladmin flush-logs
                fi
        fi
        endscript
}

  使用logrotate/etc/logrotate.conf –f使其生效,然后在/var/log/mysql(所指定的目录下就可以看到对应格式的日志)

参数的含义:

compress:通过gzip压缩转储以后的日志,

nocompress:不需要压缩时使用这个参数

copytruncate:用于还在打开中的日志文件,把当前的日志备份截断

nocopytruncate:备份日志文件但是不截断

create mode ownergroup:转储文件,使用指定的文件模式创建新的日志文件

nocreate :不创建新的日志文件

delaycompress:和 compress 同时使用时,转储的日志文件到下一次转储的时候才压缩

nodelaycompress:覆盖 delaycompress 选项,转储同时压缩

errors address:转储的时候产生的错误信息发送到指定的Email地址

ifempty:即使是空文件也会转储,这是logrotate 的缺省选项

notifempty:如果是空文件的话,不进行转储

mail address:把转储的日志文件发送到指定的E-mail

nomail:转储时不发达送日志文件                                     daily:指定转储周期为每天                                          weekly:指定转储周期为每周

monthly :指定转储周期为每月

rotate count:指定日志文件删除之前转储的次数,0指没有备份,5指保留5个备份

size size:当日志文件到达指定的大小时才转储,Size可以指定bytes(缺省)以及KB或者MB

dateext:在转储的日志文件后面添上日期作为后缀。例如:如果日志名称为:log.则转储后为:log-20140929。如果目录下已经有了一个名称为log-20140929的文件,那么转储就会失败。|

参考链接: http://zhumeng8337797.blog.163.com/blog/static/10076891420121951235106/








本文出自 “相守姑娘说” 博客,请务必保留此出处http://sugarlovecxq.blog.51cto.com/6707742/1559284

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。