因为项目日志老占磁盘空间,记录一下优化配置文件:
针对linux清理:
1.创建一个名为 cleanup_nginx_logs.sh
的脚本文件
nano cleanup_nginx_logs.sh
2.在打开的文本编辑器中,将以下内容复制并粘贴到文件中:
#!/bin/bash
# 设置要清理的日志目录和文件名
LOG_DIR="/var/log/nginx"
LOG_FILES=("access.log" "error.log")
# 清理日志文件
for file in "${LOG_FILES[@]}"
do
find "$LOG_DIR" -name "$file" -type f -mtime +30 -exec rm {} \;
touch "$LOG_DIR/$file"
done
3.保存文件并退出编辑器
4.输入以下命令修改脚本文件的权限,使其可执行:
chmod +x cleanup_nginx_logs.sh
5.使用 cron 来定期运行该脚本。输入以下命令打开 crontab 编辑器:
crontab -e
6.在打开的文本编辑器中,添加以下一行到文件末尾,表示每天凌晨 1 点清理 NGINX 日志并保留30天内的日志:
0 1 * * * /path/to/cleanup_nginx_logs.sh
7.保存文件并退出编辑器,坐等第二天查看就可以了
针对Windows清理:创建一个.bat文件,复制下面内容,更换NGINX安装目录即可,参数随自己需求调整
@echo off
rem 取1天之前的日期
echo wscript.echo dateadd("d",-1,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j
for /f "tokens=1,2,3* delims=/" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k
if %m% LSS 9 set m=0%m%
if %d% LSS 9 set d=0%d%
echo %y%-%m%-%d%
rem 查询Nginx进程
tasklist /fi "imagename eq nginx.exe"
rem 设置NGINX安装盘符
set NGINX_DRIVER=D:
rem 设置NGINX安装路径
set NGINX_PATH="%NGINX_DRIVER%\wanmagroup\ide\nginx-1.20.2"
rem 设置NGINX日志目录
set LOG_PATH=%NGINX_PATH%\logs
rem 设置保留日志天数
set save_days=10
rem 进入NGINX盘符
%NGINX_DRIVER%
rem 进入日志路径
cd %LOG_PATH%
rem 移动日志文件
move %LOG_PATH%\host.access.log %LOG_PATH%\host.access_%y%-%m%-%d%.log
move %LOG_PATH%\error.log %LOG_PATH%\error_%y%-%m%-%d%.log
rem 进入NGINX安装路径
cd %NGINX_PATH%
rem 重新打开Nginx
nginx -s reopen
rem 删除30天之前的文件 "%LOG_PATH%"
forfiles /p "%LOG_PATH%" /s /m *%y%-%m%-%d%.log /d -%save_days% /c "cmd /c del @path"
echo on
创建完成双击运行即可
如果文章帮助了你解决问题,帮点赞一下,谢谢阅读!