zoukankan      html  css  js  c++  java
  • 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的情况下,分割日志。

  • 相关阅读:
    统计单词数 OpenJ_Bailian
    整数划分 NBUT
    高精度(x ,/, +, -, %)良心模板
    binary-tree-maximum-path-sum
    2080 特殊的质数肋骨 USACO (深度优先搜索)
    1413 权势二进制
    POJ 1258
    poj 3126
    hdu 1195
    POJ 3752
  • 原文地址:https://www.cnblogs.com/aleafo/p/12315530.html
Copyright © 2011-2022 走看看