网站首页 > 技术教程 正文
上一章讲解了nginx的目录加密功能,本章重点介绍nginx的日志切割。
在前面,我们探讨过nginx的常用命令,如果还不熟悉,可以去看着练习几遍。
nginx通过`/usr/local/nginx/sbin/nginx -s`命令向nginx的主进程(master进程)发送信号,这些信号有stop、quit、reopen、以及reload。
那么其中的reopen,就是我们今天的主角,我们可以使用reopen来实现日志切割。
第一步:进入日志目录:
cd /usr/local/nginx/logs/
第二步:重命名日志文件:
]# mv access{,.$(date +%F)}.log
]# ls
access.2021-07-23.log error.log nginx.pid
ps:重命名后,nginx日志仍然会写入到"access.2021-07-23.log"文件中,并不会自动创建一个新的"access.log"文件。
即使你手动创建了一个新的"access.log"文件,nginx仍然会把日志写入到重命名后的"access.2021-07-23.log"文件中。
这是因为nginx进程读写日志文件时,是通过文件描述符去操作的,虽然我们修改了原"access.log"文件的文件名,但是原文件描述符与文件本身的对应关系仍然存在。
所以,重命名后,我们需要让nginx重新打开一个新文件,以便将新的日志写入到新文件中。
第三步:发送信号:
nginx -s reopen
执行完上述命令后,日志目录中自动生成了一个新的"access.log"文件,
再次访问nginx,会发现新生成的日志已经写入到了新生成的"access.log"文件中了。
原理解析:
发送信号,其实是执行:
kill -USR1 `cat /usrlocal/nginx/logs/nginx.pid`
以上两种方式都可以实现日志切割,你可以任意选择。
定期执行:
日志切割时企业中常规动作,我们不会每天去手工执行一遍命令,通常是让脚本自己执行,于是我们可以将这个动作写进任务计划,每天凌晨自动执行。
脚本:
#!/bin/bash
#by lutixia
#########################
s_log="/usr/local/nginx/logs/access.log"
d_log="/data/backup/nginx-$(date +%F).log"
d_log_dir="/data/backup"
#判断备份目录是否存在,不存在则创建
if [ ! -d "$d_log_dir" ];then
mkdir -p "$d_log_dir"
fi
#判断原日志文件是否存在,存在则移动并改名
if [ -f "$s_log" ];then
mv "$s_log" "$d_log"
fi
#以下两条命令任选其一:
#kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
/usr/local/nginx/sbin/nginx -s reopen
if [ $? -eq 0 ];then
echo "$(date +%F) 日志切割成功"
fi
写入任务计划:
在/var/spool/cron/root文件中添加如下代码,每天零点自动切割日志:
0 0 * * * /bin/sh nginx_cut_log.sh >>/tmp/nginx_cut.log 2>&1
到这里简单的日志切割工作就完成啦。
欢迎点赞,收藏,你的喜欢就是我原创的动力,nginx系列我将会持续更新。
猜你喜欢
- 2024-10-10 通过什么方式来读取和监控nginx的日志呢
- 2024-10-10 linux运维之nginx日志之 log_format详解
- 2024-10-10 Nginx 日志自动切割(Centos6.8)(nginx日志切割配置)
- 2024-10-10 nginx - linux上日志分割(nginx日志级别顺序)
- 2024-10-10 练习Nginx定时备份日志及正则配置
- 2024-10-10 nginx启动时报错的日志 端口查看(nginx启动日志在哪儿)
- 2024-09-16 Nginx奇技淫巧之:按日期自动生成日志文件
- 2024-09-16 nginx的日志切割(nginx的日志切割脚本)
- 2024-09-16 ELK日志系统之使用Rsyslog快速方便的收集Nginx日志
- 2024-09-16 nginx 部署的项目查看错误日志并处理
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)