#!/usr/bin/bash s_log="/usr/local/nginx/logs/access.log" d_log="/root/my_sh/nginx/logs/$(date +%Y-%m-%d_%H-%M-%S).log" d_log_dir="/root/my_sh/nginx/logs" # 判断目录是否存在,不存在则创建 if [ ! -d "$d_log_dir" ];then mkdir -p "$d_log_dir" fi # 判断原始日志文件是否存在,存在则移动并改名 if [ -f "$s_log" ];then mv "$s_log" "$d_log" fi # 重新打开nginx日志文件-方法1 kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` # 方法2 # /usr/local/nginx/sbin/nginx -s reopen if [ $? -eq 0 ] then echo "$(date +%Y-%m-%d_%H-%M-%S) 日志切割成功" >> "/root/my_sh/nginx/nginx_cut_access.log" else echo "$(date +%Y-%m-%d_%H-%M-%S) 日志切割失败" >> "/root/my_sh/nginx/nginx_cut_error.log" fi
创建好两个日志切割文件
touch /root/my_sh/nginx/nginx_cut_access.log
touch /root/my_sh/nginx/nginx_cut_error.log
crontab -e
59 23 * * * /bin/sh /root/my_sh/nginx/nginx_cut_log.sh
参考文档