134,966
社区成员
发帖
与我相关
我的任务
分享一、背景
在Nginx作为web的场景中,会发现随着业务量的增加及时间的积累,会发现access.log日常异常大。不仅占用空间,而且查看日志也不方便。这时,我们就需要对access.log进行按时间/日志文件大小进行切割。
二、脚本示例
#!/bin/bash
#日志目录
logs_path=/usr/local/nginx/logs/
#切割日志的时间
logs_date=`date -d "yesterday" +%F`
#归档转存日志,配合计划任务完成定期归档,即相当于按时间切割
mv ${logs_path}/access.log ${logs_path}/access_${logs_date}.log && gzip ${logs_path}/access_${logs_date}.log
#重新加载nginx程序pid,即平滑重启Nginx,如果不加载程序会继续向access写日志到原文件
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid
配置定时任务:
1 0 * * * /bin/bash /nginx_split.sh /每天转储一次