首页 > 系统相关 >NginxWeb服务器定时切割日志shell脚本

NginxWeb服务器定时切割日志shell脚本

时间:2023-03-22 15:01:03浏览次数:41  
标签:shell logs NginxWeb Nginx nginx 切割 日志 log


Nginx 定时切割日志

定时切割方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。

Nginx 不支持像Apache一样使用cronolog来轮转日志,但是可以采用以下方式来实现日志文件的切割:

mv /data1/logs/acccess.log /data1/logs/20130423.log

kill -USR1 Nginx主进程号

首先通过mv命令将日志文件重命名为 /data1/logs/20130423.log,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件/data1/logs/access.log.如果nginx.conf配置文件中使用了"pid /usr/local/webserver/nginx/nginx.pid;"指令,指定了pid文件的存放路径,我们可以通过cat 这个pid文件获得Nginx的主进程号,命令如下:

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

如果想每天定时切割日志,还须接触crontab.我们可以写一个按天切割的日志,按年、按月分目录存放日志的shell脚本:

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

#!/bin/bash

#这个脚本须在每天的00:00运行

#Nginx日志文件的存放路径

logs_path="/data1/logs/"

 

mkdir -p ${log_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" + "%Y%m%d").log

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

 

保存,另外,配置crontab每天凌晨00:00定时执行这个脚本:

chmod 777 cut_nginx_log.sh

crontab -e

输入一下内容并保存:

00 00 * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

标签:shell,logs,NginxWeb,Nginx,nginx,切割,日志,log
From: https://blog.51cto.com/u_2650279/6142647

相关文章

  • IIS 部署网站 Log4net日志没有写入
    前提:Log4net日志写入是开启状态,并且相关的配置文件完整无异常 可能原因:网站文件相关用户没有写入的权限操作步骤右键网站=》编辑权限=》安全=》选择User用户=》编辑=......
  • 服务器sel日志结合mcelog分析故障主要针对CPU以及内存
    两个CPU平台介绍:Grantley以及Purley建议装最新的mcelog工具到系统下,mcelog-help查看支持的平台两个关键要素:1.CPU位置和BANK位置可以使用命令:cat/proc/cpuinfo|......
  • 访问nginx报错502日志:failed (13: Permission denied)
    1.错误问题nginx启动成功,但是访问nginx报错502。检查后台项目,使用IP+端口可以正常访问项目的,这说明项目启动成功了。那就是nginx的问题。检查了nginx.conf文件发现配置的......
  • 红帽认证RedHat-RHCSA shell的基本应用用户和组管理网络配置和防火墙管理笔记汇总
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操......
  • 使用shell并发执行系统命令
    一解决方案旧方案为挨个执行shell_exec,串行执行,虽然执行很快,奈何监听命令众多,redis连接有等待时间等,有的还需要执行多次取平均值,所以执行完已超过1min故,改为并发执行命......
  • 线上日志与线下日志
    线上日志打印是指在生产环境中运行的应用程序将日志记录到服务器上的日志文件或其他存储介质中。这些日志通常包含有关应用程序的错误、异常和性能数据等信息,以便开发人员......
  • Micro IM 更新日志
    欢迎使用MicroIM框架邮箱:[email protected]微信:15220072935V1.3.3更新记录表单[优化]checkboxlist增加参数urlParms和ajaxContentType,radiolist增加参数urlParms......
  • mtail 日志采集
    支持else与otherwise/foo/{ACTION1}else{ACTION2}支持嵌套/foo/{/foo1/{ACTION1}/foo2/{ACTION2}otherwise{ACTION3......
  • Linux启动Java程序jar包Shell脚本
    手动方式启动和终止java程序启动java程序jar:nohupjava-jarXXX.jar查看程序占用pid:ps-ef|grepXXX.jar或jpsjps是jdk提供的一个查看当前java进程的小工具,查询Lin......
  • Linux 系统日志初学者指南
    几十年来,Linux日志记录一直由syslogd守护进程管理(注意rsyslogd是syslogd的新版本,是一个东西)。Syslogd将收集系统进程和应用程序发送到 ​​/dev/log​​ 的日志......