本文主要是介绍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[@]}"
dofind "$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%\logsrem 设置保留日志天数
set save_days=10rem 进入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%.logrem 进入NGINX安装路径
cd %NGINX_PATH%rem 重新打开Nginx
nginx -s reopenrem 删除30天之前的文件 "%LOG_PATH%"
forfiles /p "%LOG_PATH%" /s /m *%y%-%m%-%d%.log /d -%save_days% /c "cmd /c del @path"
echo on
创建完成双击运行即可
如果文章帮助了你解决问题,帮点赞一下,谢谢阅读!
这篇关于nignx日志定时清理、Windows 清理nignx日志、linux 清理nignx日志的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!