简单的nginx日志分割shell脚本

nginx的日志access.log没有分割,访问的记录一直都记录在此文件中,长期下去对于日志查询和文件系统都不好,所以需要进行分割。

vim /data/scripts/cut_nginx_log.sh
 
#!/bin/bash
# auto-run this script at 00:00
LOGS_PATH=/data/app/nginx/logs
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
kill -USR1 $(cat /data/app/nginx/logs/nginx.pid)

保存退出,添加执行权限:

chmod +x /data/scripts/cut_nginx_log.sh

可以执行一下看是否分割成功,接下来添加自动任务计划,在每天的0点执行:

# crontab -e
添加:
0 0 * * * /data/scripts/cut_nginx_log.sh

OK了,完成。

时间: 2024-09-23 21:35:42

简单的nginx日志分割shell脚本的相关文章

nginx日志切割shell脚本_linux shell

一.脚本思路 第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志.在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件. 第二步向nginx主进程发送USR1信号. nginx主进程接到信号后会从配置文件中读取日志文件名称,重新打开日志文件(以配置文件中的日志名称命名),并以工作进程的用户作为日志文件的所有者. 重新打开日志文件后,nginx主进程会关闭重名的日志文件并通知工作进程使用新打开的日志文件.

Nginx日志分割切割脚本分享

先直接放日志分割切割脚本  代码如下 复制代码 #!/bin/bash #set the path to nginx log files log_files_path="/home/wwwlogs/" log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m") #set nginx log

linux中nginx日志分析shell脚本

以前使用虚拟主机的时候,查看网站运行日志,就发现了很多异常的恶意的访问.当时因为自己并没有系统权限没办法对这些行为进行屏蔽.现在有了自己的云主机,前端时间查看日志,又发现了很多恶意访问.正好可以通过最近对shell的学习,来做一个简单的日志分析工具,来屏蔽一些这样的操作. 首先,所谓的分析工具,肯定是建立在人为的分析的基础上的.我们来看一点我的域名运行日志:  代码如下 复制代码 78.56.78.115 - - [21/May/2014:16:54:27 +0800] "POST /wp-lo

nginx日志分析shell脚本

先基本了解一几条命令 一下脚本都是基于上面日志格式的,如果你的日志格式不同需要调整awk后面的参数. 分析日志中的UserAgent  代码如下 复制代码 cat access_20130704.log | awk -F """ '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20 上面的脚本将分析出日志文件中最多的20个UserAgent 分析日志中那些IP访问最多  代码如下 复制代码 cat access_20

nginx日志分割与mysql备份脚本

我们先来看mysql备份脚本  代码如下 复制代码 mysql_back.sh #!/bin/sh #mysql数据库备份成sql文件并压缩 #并删除7天前创建的备份. backupdir=/opt/cpfxs/mysqlbak mysqlpath=/usr/local/mysql/bin/ time=` date +%Y%m%d ` $mysqlpath/mysqldump -h127.0.0.1 -uroot -pluobo mydb | gzip > $backupdir/mydb$tim

nginx中使用shell脚本每天定时切割日志

Nginx不支持像Apache 一样使用cronolog来轮转日志,但是可以采用以下方式来实现日志文件的切割: mv /data1/logs/access.log /data1/logs/20111030.log kill -USR1 Nginx主进程号 通过mv命令将日志文件重命名为/data1/logs/20111030.log,然后发送kill -USR1信号给Nginx的主进程号,让Nginx 重新生成一个新的日志文件/data1/logs/access.log. 如果想每天定时切割日志

Lnmp下Nginx日志自动切割脚本

该脚本会自动切割/home/wwwlogs/目录下所有的log文件 #!/bin/bash #自动版日志切割 无需设置 #set the path to nginx log files log_files_path="/home/wwwlogs/" log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%

php管理nginx虚拟主机shell脚本实例_php技巧

本文实例讲述了php管理nginx虚拟主机shell脚本,分享给大家供大家参考.具体分析如下: 使用php作为shell脚本是一件很方便的事情.理所当然,我们可以使用php脚本来管理 nginx虚拟主机,下面是笔者的 脚本 文件供各位参考: 复制代码 代码如下: #!/usr/bin/php -q <?php   start: fwrite(STDOUT,"===========Vhost Script===========\n"); fwrite(STDOUT,"=

一个简单的转换输出的shell脚本代码_linux shell

一个简单的转换输出的shell脚本,从健盘输入 a,b,c 这种格式  输出如下格式:a c 复制代码 代码如下: #!/bin/bashread -p '请输入:'echo $REPLY >.tmp5count=`grep -o ',' .tmp5 |wc -l`echo $countcount_=$((count+1))i=1:>.tmp1while [ $i -le $count_ ]do   echo $i   awk -F, -v j="$i"  '{print$