文章最后更新时间:2022年09月20日已超过801天没有更新。
生产环境需求:
1、每天切割nginx日志,并以时间为文件名保存
2、一个文件夹存一个月的日志
脚本实现内容:
1、创建access大文件,储存日志
mkdir access_log
2、编写脚本
[root@WEB logs]# cat cut_nginx_log.sh #!/bin/bash #文件夹名 dtime=$(date '+%Y%m') #日志备份名 date=$(date '+%Y%m%d') #备份路径 backpath=/usr/local/nginx/logs/access_log/$dtime/$date #日志存储路径 logpath=/usr/local/nginx/logs/access.log if [ ! -d "/usr/local/nginx/logs/access_log/$dtime" ];then #判断文件夹是否存在,不存在就创建目录 mkdir /usr/local/nginx/logs/access_log/$dtime mv $logpath $backpath kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) else mv $logpath $backpath kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) fi
注意事项
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) 这条语句是核心,可以参考nginx信号控制文章内容,大概作用就是进行日志文件重读,没有此命令,你所创造新日志文件不会有内容产生,nginx日志内容继续往你备份文件写入。
3、添加到定时任务cron
文章版权声明:除非注明,否则均为柳三千运维录原创文章,转载或复制请以超链接形式并注明出处。