• nginx日志分割


     nginx作为反向代理服务器,每天的日志量是非常大的,而日志也是查看管理程序的关键,如果只用单个日志文件势必会造成

    查看起来很麻烦。这是就需要对nginx产生的日志进行分割,具体方法如下。

     修改conf/nginx.conf文件,自定义输出的日志格式,地址及名称,部分改动如下:

    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
       #将日志保存到logs/test1.log下
        access_log logs/test1.log main;

    创建日志文件的目录

    [root@localhost nginx]# mkdir datalogs

    编写shell脚本用来将日志文件定时改名并备份到指定目录 ,在sbin下创建log.sh脚本如下

    #安装nginx的基目录
    BASE_DIR=/usr/local/nginx
    
    #当前日志文件的文件名
    
    BASE_FILE_NAME=test1.log
    
    #当前日志文件的路径
    
    CURRENT_PATH=$BASE_DIR/logs
    
    #备份文件路径
    BAK_PATH=$BASE_DIR/datalogs
    
    #当前文件全路径
    
    CURRENT_FILE=$CURRENT_PATH/$BASE_FILE_NAME
    
    #备份时间
    BAK_TIME=`/bin/date -d yesterday +%Y%m%d%H%M`
    
    #备份文件全路径
    BAK_FILE=$BAK_PATH/$BAK_TIME-$BASE_FILE_NAME
    
    echo $BAK_FILE
    
    #停止nginx服务
    
    $BASE_DIR/sbin/nginx -s stop
    
    #将当前日志文件重命名并移动到指定地址
    
    mv $CURRENT_FILE $BAK_FILE
    
    #开启Nginx服务
    
    $BASE_DIR/sbin/nginx

    更改log.sh shell脚本权限为对所有用户可读可写可执行

    [root@localhost sbin]# chmod 777 log.sh

    crontab -e定时执行shell命令,每分钟执行一次shell命令(备份操作)

    */1 * * * * sh /usr/local/nginx/sbin/log.sh

    备份成功如下:

  • 相关阅读:
    vim 常用操作
    Zookeeper 一种简单的原子操作机制:
    用习惯的vimrc配置,在这里记录一下,以后可以继续完善使用
    static_cast, dynamic_cast, const_cast探讨【转】
    常用CSS标签使用
    Java基础
    Hibernate的第一个程序
    Hibernate的优缺点
    python基础语法
    ansible-role安装nginx,keepalived,tomcat
  • 原文地址:https://www.cnblogs.com/coder-lichao/p/10945933.html
Copyright © 2020-2023  润新知