美文网首页运维驿站系统运维专家
切割nginx、php-fpm网站日志

切割nginx、php-fpm网站日志

作者: Ice_King | 来源:发表于2019-02-21 17:25 被阅读0次

    本例以我当前Centos Linux服务器文件目录信息为准,看官请自行替换自己的目录及文件

    #!/bin/bash
    
    # 备份php-fpm 及 web的日志
    
    # 今天的日期
    #file_date=$(date +"%Y%m%d")
    # 昨天的日期
    file_date=$(date -d"1 day ago" +"%Y%m%d")
    # php log的路径
    log_path_php=/usr/local/php/var/log/
    # web log的路径
    log_path_web=/data/wwwlogs/
    # 备份目录
    back_path=/data/wwwlogs/
    
    # =================== 备份php log ========================
    mv ${log_path_php}php-fpm.log ${back_path}${log_path_php}php-fpm.log_${file_date}
    mv ${log_path_php}slow.log ${back_path}${log_path_php}slow.log_${file_date}
    # 主进程发送USR1信号,重新打开日志文件,否则会继续往mv后的文件写数据的。
    # 原因在于:linux系统中,内核是根据文件描述符来找文件的。如果不这样操作导致日志切割失败
    kill -USR1 `ps axu | grep "php-fpm: master process" | grep -v grep | awk '{print $2}'`
    
    
    # =================== 备份web log ========================
    # 访问日志文件名格式为 xx_acc.log;错误日志文件名格式为 xx_err.log
    # 通过循环自动备份不同网站的日志文件
    
    cd ${log_path_web}
    for file in $(ls *_acc.log);
    do
        mv ${file}{,_$file_date}
    done
    # 向nginx主进程发送USR1信号,重新打开日志文件,否则会继续往mv后的文件写数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。如果不这样
    操作导致日志切割失败
    kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
    
    1. 将代码保存到/root/cut_logs.sh
    2. 执行chmod +x /root/cut_logs.sh
    3. 使用命令 crontab -e 添加到计划任务,每天0点0分执行

    0 0 * * * /root/cut_logs.sh

    相关文章

      网友评论

        本文标题:切割nginx、php-fpm网站日志

        本文链接:https://www.haomeiwen.com/subject/eqddyqtx.html