shell+定时任务+nginx信号管理实现日志按日期切割存储

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: shell+定时任务+nginx信号管理实现日志按日期切割存储

正文


我们每天凌晨00:00:01把昨天的日志重命名,放在特定的目录下,再USR1信息号控制nginx重新生成新的日志文件

在目录/usr/local/nginx/logs/下新建shell脚本runlog.sh

注:以下代码中的文件位置均可自行更改

# 定义sh解释器
#!/bin/bush
# 定义要分割的日志的存储位置
LOGPATH=/usr/local/nginx/logs/access.log
# 定义分割后的日志的存储位置,$(date -d yesterday +%Y%m):名为年份+月份的目录
BASEPATH=/usr/local/nginx/logs/$(date -d yesterday +%Y%m)
# 递归创建以BASEPATH为名的目录
mkdir -p $BASHPATH
# 将字符串……赋值给bak
bak=$BASEPATH/$(date -d yesterday +%d)_access_log
# 将$LOGPATH更名为$bak
mv $LOGPATH $bak
# 创建$LOGPATH文件
touch $LOGPATH
# 控制Nginx重新生成日志文件
kill -USR1 `/usr/local/nginx/logs/nginx.pid`

然后使用crontab命令编辑定时任务

crontab -e• 1

在打开的编辑窗口输入

01 00 * * * sh /usr/local/nginx/logs/runlog.sh

crontab文件的含义:

# 用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
# minute hour day month week command
# 分 时 日 月 周 命令
# 每项设置的解释
minute 表示分钟,可以是从0到59之间的任何整数。
hour 表示小时,可以是从0到23之间的任何整数。
day 表示日期,可以是从1到31之间的任何整数。
month 表示月份,可以是从1到12之间的任何整数。
week 表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command 要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。它的

这时,即设置好了Nginx的定时日志切割存储,每天的凌晨00:00:01把昨天的日志切割存储起来。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
203 3
|
6月前
|
应用服务中间件 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 如何处理?
504 6
|
6月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
6月前
|
Java Shell Linux
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
关于如何使用Shell脚本来解析Linux系统中的应用服务日志,提供了脚本实现的详细步骤和技巧,以及一些Shell编程的技能扩展。
101 0
【Linux入门技巧】新员工必看:用Shell脚本轻松解析应用服务日志
|
6月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
298 1
|
6月前
|
存储 Ubuntu 应用服务中间件
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
如何在 Ubuntu VPS 上配置 Nginx 的日志记录和日志轮转
57 4
|
6月前
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
226 0
部署ELK+filebeat收集nginx日志
|
7月前
|
Shell 测试技术 Linux
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
Shell 脚本循环遍历日志文件中的值进行求和并计算平均值,最大值和最小值
94 3
|
6月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
1164 0
|
6月前
|
应用服务中间件 nginx
[nginx]日志中记录自定义请求头
[nginx]日志中记录自定义请求头
103 0