nginx日志定时切割脚本

1 编写脚本cut_nginx_log.sh,放置在nginx/sbin/目录下,修改成可执行 
#!/bin/bash 
# This script run at 00:00

#放置日志目录 
logs_path="/var/www/logs" 
#nginx 目录 
nginx_path="/var/www/nginx"

#创建日期目录 
mkdir -p ${logs_path}/$(date -d "yesterday" +"%Y.%m")/ 
#移动nginx/logs/access.log日志到指定目录 
mv ${nginx_path}/logs/access.log ${logs_path}/$(date -d "yesterday" +"%Y.%m")/$(date -d "yesterday" +"%Y.%m.%d").log 
#通知nginx进程刷新日志文件 
kill -USR1 `cat ${nginx_path}/logs/nginx.pid`

2 添加系统定时任务:sudo crontab -e 
00 00 * * * /var/www/nginx/sbin/cut_nginx_log.sh

时间: 2024-11-03 01:28:16

nginx日志定时切割脚本的相关文章

nginx日志定时切割

关于nginx日志定时切割.一般有两种方案,第一用logrotate,它是一个linux系统日志的管理工具.它可以切割.压缩等其他软件的日志文件软件:logrotate是基于crontab运行的,所以这个时间点是由crontab控制的,具体可以查询crontab的配置文件/etc/anacrontab.第二种用shell脚本定时切割. 第一种方案:logrotate 1.安装logrotate,我这里是centos直接用:yum -y install logroate 2.安装成功后.配置log

nginx日志分割小脚本

nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割: 1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS_LOG=/data/nginx/www.log ERROR_LOG=/data/nginx/error.log YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #mv logs echo "move log files" mv ${A

nginx 日志轮询脚本

nginx 日志轮询脚本      nginx 没有自带日志轮询功能, 这个脚本必须配合crontab来实现日志的按天轮询.生产环境使用下还是很靠谱和方便,推荐给大家使用.  里面具体的内容大家自己看把有点shell基础就能明白的.  crontab -e 00 08 * * * /bin/bash /opt/scripts/BackupNginxLog.sh BackupNginxLog.sh #!/bin/bash LogPath=/usr/local/logs_nginx BackupPa

tomcat,nginx日志定时清理

1. Crontab定时任务 Crontab 基本语法 t1 t2 t3 t4 t5 program 其中 t1 是表示分钟,t2 表示小时,t3 表示一个月份中的第几日,t4 表示月份,t5 表示一个星期中的第几天.program 表示要执行的程序. 当 t1 为 * 时表示每分钟都要执行 program,t2 为 * 时表示每小时都要执行程序,其馀类推 当 t1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,t2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推

Nginx 日志文件切割

Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割. 在 Linux 平台上 Shell 脚本丰富,使用 Shell 脚本加 crontab 命令能非常方便地进行切割,但在 Windows 平台上就麻烦一些了,刚才弄了好长时间,就在这里记录整理一下.

线上nginx日志无切割引起的祸

状况:lnmp环境下nginx反向代理服务器,部分网站无法访问,重启服务器后ok 拿到权限后安装zabbix监控,负载Ok , IO报警: Disk I/O is overloaded on xss152 使用命令工具查看io状况,top下78%wa........................ [[email protected] /]#  iostat -x 1 10  avg-cpu:  %user   %nice %system %iowait  %steal   %idle     

Nginx日志文件切割

Nginx 是一个非常轻量的 Web 服务器,体积小.性能高.速度快等诸多优点.但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将 导致日志文件容量非常大,不便于管理.当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割. 在 Linux 平台上 Shell 脚本丰富,使用 Shell 脚本加 crontab 命令能非常方便地进行切割 日志文件切割要求 由于 Nginx 的日志都是写在一个文件当中的,因此,我们需要每

Shell脚本实现 tomcat 日志定时切割

日志切割的意义: 在生产环境中,当我们使用tomcat服务时,如果用户量过多,有没有日志切割,将会产生很大的日志,一天的日志都能有好几个G大小.当我们需要查看日志记录时,非常麻烦.因此,日志切割是很有必要的! 1.编写shell脚本 vim fengelog.sh #脚本声明 #!/bin/bash . /etc/profile . ~/.bash_profile #定义日志文件目录 applog_path=/usr/local/apache-tomcat-app/logs sapplog_pa

nginx日志定期归档脚本

#!/bin/bash #nginx下域名access日志切割归档脚本 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) #==================================================Definition array==================================================== catalogue=(         www_logs         service_l