nginx安装在/usr/local文件夹下
1.在nginx根目录下创建一个文件data,保存脚本文件runlog.sh
mkdir /data
vim ./data/runlog.sh
2.在脚本文件runlog.sh文件里添加如下代码。
代码的含义是:在logs文件夹下,每天凌晨一点生成一个昨天的日志文件(命名方式:access_YYYY-MM-DD.log),并保存到对应年份的对应月份的文件夹中(以年份YYYY创建文件夹,再在YYYY里面按月份MM创建文件夹,然后将日志文件保存到MM中)
#!/bin/bash
log_base=/usr/local/nginx/logs
log_path=${log_base}/$(date -d yesterday +%Y)/$(date -d yesterday +%m)
mkdir -p $log_path
mv $log_base/access.log $log_path/access_$(date -d yesterday +%Y%m%d).log
touch $log_base/access.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
#echo $(date -d yesterday +%Y%m%d).log
3.运行、检查runlog.sh
将echo前面的#号去掉,保存退出runlog.sh脚本后,直接输入:
sh runlog.sh //执行脚本,检查是否有错误
4.定时执行runlog.sh
输入命令:
crontab -e
在打开的界面输入如下信息:
1 0 * * * sh /usr/local/nginx/data/runlog.sh //每天凌晨0点1分执行
注:yesterday 也可以用 today等,定时任务改一下执行时间即可
分享到:
相关推荐
容器化nginx日志分割、定时压缩、定时删除脚本,生产环境亲测无问题
nginx日志文件路径:/var/log/nginx/access.log nignx.pid路径:/run/nginx.pid 新建的定时脚本位置/shell/nginx/logs.sh 1.新建脚本并执行 #mkdir /shell/nignx #cd /shell/nginx #vim logs.sh #!/bin/bash base_...
综上所述,这个Nginx多Server日志分割脚本是一个高效且实用的工具,它实现了日志的自动备份、分割和压缩,极大地简化了日志管理任务。对于需要管理多个站点的Nginx服务器管理员来说,这样的脚本是必不可少的。通过...
Nginx本身支持日志分割,通过`log_format`定义日志格式,然后在`access_log`或`error_log`指令后加上时间戳参数,如`rotatelogs`。例如: ```nginx access_log logs/access.%Y%m%d.log main; error_log logs/error....
在运维和管理Nginx服务器的过程中,日志管理是一项重要的任务。日志文件过大不仅会影响服务器的性能,如访问速度,还可能导致查找特定信息时的困难。本文将详细介绍如何实现Nginx日志按天生成和定期删除,以优化日志...
"nginx日志按时间切割"是常见的日志管理策略,旨在通过定时分割日志文件,避免单个日志文件过大导致的读取性能下降和存储压力。本压缩包提供了一个用于Windows环境的批处理脚本,即`rename-nginx-logs-forwindow.bat...
以下是对如何定时清理Linux系统中Nginx日志的详细步骤和原理的解释。 首先,我们需要创建一个脚本来进行日志文件的分割和备份。在描述中提到了`clear_log.sh`脚本,这是一个用于将当前的日志文件备份并清空的脚本。...
通过编写自定义Shell脚本并结合Cron任务,我们可以轻松实现在CentOS系统中Nginx按日期自动分割访问日志的功能。这一方案不仅提高了日志管理的效率,还为后续的数据分析提供了便利。对于运维人员来说,这是一个非常...
本篇主要介绍如何通过编写和调度shell脚本来实现Nginx日志的定时清理。 首先,我们需要创建一个名为`clear_log.sh`的脚本,用于日志的分割和清空。这个脚本的基本结构如下: ```bash #!/bin/bash cp /usr/local/...
这个问题的背景是因为Nginx的日志默认不会自动按照日期进行分割备份,且日志中的时间格式可能不统一,这给管理和分析日志带来了不便。 在Windows环境中,部署该方法的步骤如下: 1. 在Nginx安装目录下创建一个名为...
现在,你已经成功设置了Nginx日志每天定时切割的脚本。`logrotate`会按照你设定的规则每天执行日志切割,并且通过`postrotate`中的命令确保Nginx继续正常工作。如果需要,还可以根据需求调整logrotate的其他参数,...
此外,还可以结合cron定时任务或其他脚本实现更高级的日志轮换策略,例如按天或按周自动归档旧日志文件。 #### 安装与配置Awstats 1. **安装Perl环境**:由于Awstats是基于Perl编写的,因此首先需要确保系统已安装...
脚本的主要目标是每天定时将Nginx的日志文件切割成按日期命名的新文件,并删除超出指定保留天数的旧日志,以保持日志文件的整洁和高效。 以下是对脚本内容的详细解释: 1. **设置日志文件路径**:首先,你需要定义...
一、编写拆分脚本(splitNginxLog.sh) * 因为本例中设置每天0点进行日志的拆分,所以folder和rq均设置采用昨天的日期进行归档。 #!/bin/bash folder=`date -d yesterday +%...# 要分割的日志 logs_access=access logs
- **日志切割**:通过定时任务或配置指令,可以自动分割并归档日志文件。 8. **性能优化** - **超时设置**:调整连接超时、读写超时等参数,避免资源浪费。 - **最大连接数**:设置最大并发连接数,平衡资源使用...
6. **Cron定时任务**:为了定期执行日志切割,可以将这个脚本设置为Cron定时任务。在示例中,脚本被安排在每天的0点执行,用`crontab -e`命令编辑cron配置,并将日志切割脚本的执行结果重定向到指定的日志文件中。 ...
此时,通过Crontab定时任务配合Shell脚本来实现日志的自动切割,是一种实用且高效的方法。 **日志切割脚本原理:** 1. **移动日志文件**:首先,脚本会将当前的日志文件(如`/home/wwwlogs/error.log`)移动到特定...