nginx、mysql 日志定时任务切割logrotate

配置文件

/alidata/log/nginx/aipiaxi/*.log
{
  daily
  rotate 15
  missingok
  dateext
  compress
  notifempty
  sharedscripts
  postrotate
    if [ -f /var/run/nginx.pid ]; then
      kill -USR1 `cat /var/run/nginx.pid`
    fi
  endscript
}

 

最后脚本的意思是,让nginx日志开始一个新的日志文件。

 

然后添加定时任务

crontab -e

0 4 * * * /usr/sbin/logrotate -vf /etc/logrotate.d/nginx

每天凌晨4点切割日志

 

日志格式

 

nginx.conf

log_format main '[$time_iso8601] "$http_x_forwarded_for" "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" ';

# 使用 access_log /path/to/log main;

 

对于mysql日志的切割,其实,住需要修改my.cnf 配置文件就可以。

# vim /etc/my.cnf
# 修改配置文件[mysqld]区域添加如下两行保存
expire_logs_days = 7
max_binlog_size = 500M

修改完后,记得重启mysql

 

如果需要使用logrotate,写法类似。 主要是重启mysql日志的命令不同

 

#!/bin/bash
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
slowlog=/mydata/data/slow.log
mv $slowlog /mydata/slowlog/slow.`date +%Y%m%d%H`.log
mysqladmin -uroot -pzabbix2017 --socket=/tmp/mysql.sock flush-logs
find /mydata/slowlog/slow.*.log -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

 

保存后,也需要添加定时任务。 通过mysqladmin重启命令可以在不重启mysql的情况下,分割日志。

posted @ 2020-02-16 00:49  前端小小菜  阅读(387)  评论(0编辑  收藏  举报