Nginx日志按日切分及清理超期的日志文件
Nginx的日志配置如下:
#定义日志打印的格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# 声明log log文件路径 log格式
access_log logs/access.log main;
上面是http作用域下的日志配置,除此之外,nginx还有server和location作用域可以配置日志,日志级别 location > server > http 。
nginx的日志如果不做切分的话会在一个文件中一直追加,导致日志文件越来越大,所以通过编写脚本来实现控制日切的功能,同时清理存在超过30天的文件。
脚本如下:
#!/bin/bash
#LOGS_PATH为日志存放路径
LOGS_PATH=/weblog/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
KEEPTIME=$(date -d "-30 days" +%Y-%m-%d)
#切分日志文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
#通过Nginx信号量控制重读日志,/web/nginx/为nginx安装目录
kill -USR1 $(cat /web/nginx/logs/nginx.pid)
#删除30天前的日志文件
rm -f ${LOGS_PATH}/access_{KEEPTIME}.log
rm -f ${LOGS_PATH}/error_{KEEPTIME}.log
echo 0
添加系统定时任务
crontab -e
#每天0时1分进行日志分割
01 00 * * * /web/nginx/logs/cut_nginx_log.sh #重启Linux定时任务
crond restart
Nginx日志按日切分及清理超期的日志文件的更多相关文章
- 自动清理MySQL binlog日志
开启MySQL binlog日志的服务器,如果不设置自动清理日志,默认binlog日志一直保留着,时间一长,服务器磁盘空间被binlog日志占满,导致MySQL数据库出错. 使用下面方法可以安全清理b ...
- Apache按日切分日志
apache按日切分日志,使用apache自带的rotatelogs切分 语法: rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ fi ...
- CentOS8平台nginx日志的定时切分
一,编写bash脚本: [root@yjweb crontab]# vi split_nginx_logs.sh 代码: #!/bin/bash # 备份nginx的日志 # 昨天的日期 file_d ...
- 清理SQL Server日志释放文件空间的终极方法
清理SQL Server日志释放文件空间的终极方法 转自:http://www.cnblogs.com/dudu/archive/2013/04/10/3011416.html [问题场景]有一个数 ...
- 自动清理SQLServerErrorLog错误日志避免太大
问题描述:开启SQLServer自动备份后,备份文件越来越多,有没有及时清理,导致服务器空间不足,备份出错,以至于出现几个G的ErrorLog文件,影响系统的登录管理. 解决办法:定期清理SQLSer ...
- 清理前一天log日志shell
清理前一天log日志shell #!/bin/bashlogPathList=`cat <<STD/data/logs/aiclass/backcms/data/logs/aiclass/ ...
- Docker 清理容器 log 日志
原文 Docker 清理容器 log 日志 docker logs <容器ID> 是常用命令,来查看容器运行日志,但时间长了之后,就会发现越来越慢,log 太多了,这时就需要清理一下. 先 ...
- 自动清理IIS log 日志脚本
系统环境:windows server 2012 r2 IIS 版本:IIS8 操作实现清理IIS log File 脚本如下: @echo off ::自动清理IIS Log file set lo ...
- logrotate 如何执行日志按照大小切分
说在最先的话,logrotate要设置按照文件大小来配置日志切分,需要通过三个东西. 1.配置logrotate 的配置文件 命名未任意文件,在启动的时候指定,例如/etc/weblog.conf 参 ...
随机推荐
- Android笔记(三十九) Android中的数据存储——SQLite(一) create
SQLite是内置于Android的一款轻量级关系型数据库,她运算速度快,占用资源少,通常只需要几百K的内存就足够了,因而特别适合在移动设备上使用. SQLite不仅支持标准的SQL语法,还遵循数据库 ...
- springboot2.1.3使用jdbcTemplate
这里只是备忘一下使用方式,至于配置数据源信息不在此文中讲解,忘谅解. 1. 查询返回List<Long>数据集 (这里比如返回userId,long型) @Autowired@Quali ...
- Linux cat命令使用方法
今天小编为大家带来cat的使用方法命令:catcat 命令用于连接文件并打印到标准输出设备上.使用权限所有使用者 语法格式cat [-AbeEnstTuv] [–help] [–version] fi ...
- Hadoop 二次排序
需求 求每年的最高气温,年份升序,温度求最高 数据源内容如下 temperature.txt 2004 49 1981 -22 1981 -31 1965 -47 2027 -2 1964 6 203 ...
- 【Flask】 python学习第一章 - 3.0 正则转换和错误捕捉
3.1正则转换器定义 Class RegexConverter(BaseConverter): regex = "[0-9]{6}" app.url_map.converters[ ...
- JSON空值处理与 StringUtils工具类使用
JSON 动态查询时,需要的条件本应是null,前端传入的是" " //null转换为"" private static ValueFilter filter ...
- POJ2282 The Counting Problem
题意 Language:DefaultEspañol The Counting Problem Time Limit: 3000MS Memory Limit: 65536K Total Submis ...
- HTML5 WebSocket与C# 建立Socket连接
一.WebSocket 概述 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议. WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务 ...
- PHP导出数据库sql文件,add和update
/*** 导出sql文件*/public function exportSql(){ //需要导出的数据库表存入到数组当中 $tables =array("T_CRM_QUEUE_F ...
- C# 中文序列按笔画排序
问题:给定一串含中文的序列,按首字符的笔画数排序 因为默认是按拼音来排序的, 借助Globalization命名空间,包含定义区域性相关信息的类,这些信息包括语言,国家/地区,正在使用的日历,日期.货 ...