nginx日志定期备份清理的方法

nginx,日志,定期,备份,清理,方法 · 浏览次数 : 242

小编点评

```python import shutil import subprocess import time # 获取当前时间 now = time.strftime("%Y%m%d%H%M") # 创建压缩文件名 log_filename = "accesslog_" + now + ".tar.gz" error_filename = "errorlog_" + now + ".tar.gz" # 压缩所有accesslog和errorlog文件 shutil.make_archive(log_filename, "gz", "/data/nginx/logs/accesslog") shutil.make_archive(error_filename, "gz", "/data/nginx/logs/errorlog") # 删除过旧文件 shutil.rmtree("/data/nginx/logs/", ignore_errors=True) # 给nginx重新生成日志 subprocess.run(["kill", "-USR1", "nginx.pid"]) subprocess.run(["/deploy/nginxlog"]) # 清理30天之前的备份文件 for file in os.listdir("/data/nginx/logs/"): if file.endswith(".gz"): shutil.rmtree(os.path.join("/data/nginx/logs/", file)) # 设置计划任务 schedule = "0 2 * * * /deploy/nginxlog" subprocess.run(["crontab", "-e"], text=schedule) ```

正文

nginx日志定期备份清理的方法


前言

实在不想动不动就 yum install
也不太想因为一个很小的需求就搞一下ansible.
想着能够尽量简单, 尽量方便的进行一些工作. 

具体思路就是 压缩,备份. 删除过旧的文件. 
保证磁盘的正常可用. 

具体脚本

vim /deploy/nginxlog
# 内容为: 
now=`date +%Y%m%d%H%M`
echo $now
tar -czvf /data/nginx/logs/accesslog_${now}.tar.gz /data/nginx/myappsu.log
tar -czvf /data/nginx/logs/errorlog_${now}.tar.gz /data/nginx/logs/error.log

# 置空文件, 避免磁盘过度浪费
echo " " >  /data/nginx/myappsu.log
echo " " >  /data/nginx/logs/error.log

# 给nginx 信号,重新生成日志.
kill -USR1 `cat /data/nginx/nginx.pid`

# 清理30天之前的备份文件
cd /data/nginx/logs
find . -iname *.gz -mtime +30 -exec rm -rf {} \;

设置计划任务

crontab -e
#增加为
#每天凌晨两点一分进行一次处理.
1 2 * * * /deploy/nginxlog

说明

其实很多思路都是简单.
我要学python. 跟我们的python小王子学习. 

与nginx日志定期备份清理的方法相似的内容:

nginx日志定期备份清理的方法

nginx日志定期备份清理的方法 前言 实在不想动不动就 yum install 也不太想因为一个很小的需求就搞一下ansible. 想着能够尽量简单, 尽量方便的进行一些工作. 具体思路就是 压缩,备份. 删除过旧的文件. 保证磁盘的正常可用. 具体脚本 vim /deploy/nginxlog

Nginx map 实现时间格式转换

哈喽大家好,我是咸鱼 最近我们需要把 Nginx 的日志接入到自研的日志采集平台上,但是这个平台只支持 JSON 格式,所以需要把 Nginx 日志格式改成 JSON 格式 例如下面这样的效果 刚开始在主配置文件 nginx.conf 中定义了一个名叫 json 的日志格式字段 验证的时候其他内容没

Nginx log 日志文件较大,按日期生成 实现日志的切割

Nginx日志不处理的话,会一直追加,文件会变得很大,所以理想做法是按天对 Nginx日志进行分割 ![image](https://img2023.cnblogs.com/blog/80824/202302/80824-20230206130157552-1210811098.png) ![ima

[转帖]nginx按日分割日志

https://www.cnblogs.com/leffss/p/7832123.html #!/bin/bash #按日切割nginx日志并压缩,加入crontab每天0:00切割 #作者:fafu_li #时间:2015.08.15 source /etc/profile #加载系统环境变量 s

[转帖]Nginx之ngx_http_realip_module

https://www.jianshu.com/p/80a779b3bf20 问题描述 今日在线上查询nginx日志文件的用户真实IP时,发现remote_addr和XFF地址一模一样,这点让我很是不理解,正常来讲remote_addr应该获取到的是上一个节点转发的IP地址,我们却是获得了用户的真实

ELKF(elasticsearch、logstash、kibana、filebeat)搭建及收集nginx日志

1、elasticsearch 1.1、根目录下新建data文件夹 1.2、修改elasticsearch.yml文件,添加以下内容 path.data: /home/wwq/elk/elasticsearch-8.13.4/data path.logs: /home/wwq/elk/elastic

[转帖]Nginx更改日志格式为json

https://www.cnblogs.com/lizexiong/p/14989934.html 这里只是简单记录一下主配置文件中的format格式,因为在配置过程中一直不生效,最后发现是因为配置尾部没有加 ; 号导致,所以这里简单做一个记录。 #/etc/nginx/nginx.confuser

[转帖]Centos7 nginx访问日志文件割接

一、yum安装nginx 二、各文件路径( /etc/nginx/nginx.conf) 1、访问日志路径:access_log /var/log/nginx/access.log main; 2、pid路径:pid /run/nginx.pid 三、脚本 1、创建脚本 [root@localhos

[转帖]Nginx优化与防盗链

目录 一、配置Nginx隐藏版本号1、第一种方法修改配置文件2、第二种方法修改源码文件,重新编译安装 二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志分割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页压缩功能八、配置Nginx防盗

connect() failed (113: No route to host) while connecting to upstream

转载请注明出处: 用docker 搭建的服务,今天重启了一个容器之后,请求这个服务的接口都变成了 502, 但通过docker 查看日志,发现没有异常,端口也都是正常,在nginx的日志中看到了这段错误信息 在nginx 的日志中看到:connect() failed (113: No route