码迷,mamicode.com
首页 > 系统相关 > 详细

linux服务器日志转储

时间:2014-09-29 18:02:01      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:linux   日志   管理   logrotate   转储   

配置好项目之后,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

linux服务器日志转储

标签:linux   日志   管理   logrotate   转储   

原文地址:http://sugarlovecxq.blog.51cto.com/6707742/1559284

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!