nignx日志定时清理、Windows 清理nignx日志、linux 清理nignx日志

因为项目日志老占磁盘空间,记录一下优化配置文件:

针对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

创建完成双击运行即可

如果文章帮助了你解决问题,帮点赞一下,谢谢阅读!

你可能感兴趣的:(linux,运维,服务器,java)