配置好项目之后,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-binport=3306datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysqllog=/var/log/mysql/mysql.log# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# slow_querieslong-query-time=1slow_query_log =/var/log/mysql/slow.log[mysqld_safe]log-error=/var/log/mysql/mysql_error.logpid-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/myadmin.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的文件,那么转储就会失败。|
参考链接: