当前位置 博文首页 > 三百两:nginx按天生成日志,使用crontab定时方法

    三百两:nginx按天生成日志,使用crontab定时方法

    作者:[db:作者] 时间:2021-09-12 15:12

    1.方法一:创建分割日志文件的脚本,添加定时任务

    脚本存放路径:/usr/local/nginx/sbin/cut_nginx_logs.sh,按天分割具体内容:

    [root@root sbin]# pwd
    /usr/local/nginx/sbin
    [root@root sbin]# ll
    -rwxr-xr-x 1 root root     865 115 09:50 cut_nginx_logs.sh
    -rwxr-xr-x 1 root root 6302561 1016 2016 nginx
    [root@root sbin]# 
    

    cut_nginx_logs.sh内容

    #!/bin/bash
    #function:cut nginx log files
    
    #设置日志文件的路劲
    log_files_path="/mnt/log/"
    log_files_dir=${log_files_path}
    #设置你想要剪切的日志文件 wantsan为你要切割的日志文件名称
    log_files_name=(wantsan)
    #set the path to nginx.
    nginx_sbin="/mnt/log/"
    #设置您想要保存多久
    save_days=30
    ############################################
    #Please do not modify the following script #
    ############################################
    #mkdir -p $log_files_dir
    log_files_num=${#log_files_name[@]}
    
    #切换nginx日志文件
    for((i=0;i<$log_files_num;i++));do
    mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday" +"%Y-%m-%d")
    done
    
    #删除30天前nginx 日志文件 这条语句我没有看明白, 所以注释掉了, 
    #find $log_files_path -mtime +$save_days -exec rm -rf {} \;
    
    #restart nginx
    nginx -s reload

    给cut_nginx_logs.sh添加执行权限

    chmod u +x cut_nginx_logs.sh  

    使用crontab添加定时任务

    //打开定时任务
    crontab -e
    //进入编辑模式
    i
    //添加定时任务
    00 00 * * * /bin/sh  /usr/local/nginx/sbin/cut_nginx_logs.sh
    //保存退出
    :wq!
    //重启crontab服务
    /etc/init.d/crond restart
    //查看定时任务,就会看到你添加的内容了
    crontab -l
    cs