nginx 定时分割日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: nginx  是没有自动分割日志的,所以就需要自己实现日志分割 原   站点所有日志都放在一个目录里(文件名即站点名) 分割方式:每个站点一个目录,每天生成一个日志文件,根据文件名称生成目录 呆狐狸.凨 1.lanmps_cut_log.sh  shell文件 #!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/

nginx  是没有自动分割日志的,所以就需要自己实现日志分割

原   站点所有日志都放在一个目录里(文件名即站点名)
分割方式:每个站点一个目录,每天生成一个日志文件,根据文件名称生成目录

呆狐狸.凨

1.lanmps_cut_log.sh  shell文件

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:~/bin
export PATH
# Check if user is root
if [ $UID != 0 ]; then echo "Error: You must be root to run the install script, please use root to install lanmps";exit;fi
#日志目录
IN_WEB_LOG_DIR="/www/wwwLogs"
YESTERDAY=`date -d "yesterday" +%Y-%m-%d`
[ ! -d $IN_WEB_LOG_DIR/logs ] && mkdir $IN_WEB_LOG_DIR/logs

for filename in `ls $IN_WEB_LOG_DIR`
	do 
		if [ -f $IN_WEB_LOG_DIR/$filename ] ; then
				#echo $IN_WEB_LOG_DIR/$filename
				#echo $IN_WEB_LOG_DIR/logs/${filename%.log}/${YESTERDAY}.log
				tmpPath=$IN_WEB_LOG_DIR/logs/${filename%.log}
				[ ! -d $tmpPath ] && mkdir $tmpPath
				mv $IN_WEB_LOG_DIR/$filename $tmpPath/${YESTERDAY}.log
				rm -rf $IN_WEB_LOG_DIR/$filename
		fi
	done
	
	
#nginx  pid 文件位置
kill -USR1 `cat /www/lanmps/nginx/logs/nginx.pid`
保存位置 例如:/root/lanmps_cut_log.sh

2.定时任务

#在 每天凌晨00:01运行
1 0 * * * /root/lanmps_cut_log.sh

3.设置


3.1  crontab命令

功能说明:设置计时器。

语  法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]

补充说明:cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

参  数:
-e  编辑该用户的计时器设置。
-l  列出该用户的计时器设置。
-r  删除该用户的计时器设置。
-u<用户名称>  指定要设定计时器的用户名称。

3.2  crontab 格式

基本格式 :
* *  *  *  *  command
分 时 日 月 周  命令


第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

3.3 案例

首先,输入

crontab -e
然后输入

1 0 * * * /root/lanmps_cut_log.sh
完成



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
应用服务中间件 nginx
nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
【8月更文挑战第27天】nginx error日志 client intended to send too large body: 1434541 bytes 如何处理?
210 6
|
3月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
3月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
111 1
|
3月前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
30 4
|
3月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
563 0
|
3月前
|
应用服务中间件 nginx
[nginx]日志中记录自定义请求头
[nginx]日志中记录自定义请求头
|
3月前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令
|
21天前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
139 3
|
21天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1585 14
|
17天前
|
Python
log日志学习
【10月更文挑战第9天】 python处理log打印模块log的使用和介绍
20 0