nginx日志切割shell脚本

#!/bin/bash
#function:cut nginx log files shell
#cp /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log.bak
log_cut_path="/var/log/nginx"
log_files_path="/usr/local/nginx/logs/"
log_files_dir=${log_cut_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")
log_files_name=(access)
nginx_pid=`ps aux | grep ‘nginx: master‘ | grep -v ‘grep nginx‘ | awk ‘{print $2}‘`
save_days=90
mkdir -p $log_cut_path
log_files_num=${#log_files_name[@]}
#cut nginx log files
for((i=0;i<$log_files_num;i++));do
mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log
done
kill -USR1 $nginx_pid
find $log_files_path -mtime +$save_days -exec rm -rf {} \;

现在的nginx日志存放目录 log_files_path="/usr/local/nginx/logs/"

切割后的日志存放目录 log_cut_path="/var/log/nginx"

第三行第一次运行一下

加入crontab

0 0 * * * sh /root/nginxlogcut.sh

参考 http://sndapk.blog.51cto.com/5385144/1297120 有改动

nginx日志切割shell脚本,布布扣,bubuko.com

时间: 2024-10-12 13:13:23

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

nginx 日志切割 shell脚本

# ######  My  Shell Code ############# #! /bin/bashdate=`date +%Y%m%d`logpt=/root/nginx/logs/access.loglogbk=/data/ng_log/$datelogpid=/root/nginx/logs/nginx.pidlogtag=$logbk/`date +%Y%m%d%H%m%S`if test ! -d $logbk;then mkdir -p $logbk;fitest -f $logp

Apache日志切割shell脚本

Apache.Nginx等web服务器日志量巨大,如果不进行切割的话会导致日志文件过大,不容易清理,而且给日志分析收集工作带来麻烦.下例为Apache日志切割脚本,nginx等其他web服务同样适用 代码: #!/bin/bash apache_log_path="/usr/local/apache/logs"     #指定日志存储位置 log_filenames=`/bin/ls $apache_log_path` save_days=7  #定义保留7天内日志 #按照日期时间存储

tomcat 日志切割shell脚本

vim tomcat_cut.sh #!/bin/bash log_path=/opt/tomcat8080/logs d=`date +%Y-%m-%d` d4=`date -d'30 day ago' +%Y-%m-%d` cd ${log_path} && cp catalina.out $log_path/catalina.out.$d.log echo > catalina.out rm -rf $log_path/catalina.out.${d4}.log # chmo

linux shell:nginx日志切割脚本

需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名 简要命令: mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主进程号. 解释: 通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx需要写新的日志, 不然nginx不会在mv之后继续写日志. 我们可以通

nginx日志切割脚本,python实现

# 自搭建了个人博客 有需要交流学习的可以访问 www.wpython.com #!/usr/bin/env python   import datetime,os,sys,shutil   log_path = '/alidata/log/nginx/access/' log_file = 'www.wpython.com.log'   yesterday = (datetime.datetime.now() - datetime.timedelta(days = 1))   try:    

nginx日志切割脚本,自动上传到日志服务器

nginx日志切割脚本,自动上传到日志服务器 1 nginx是yum方式安装,系统会自动生成nginx日志切割计划任务在/etc/logrotate.d/nginx下,把自动生成的计划任务删除,自己编写切割脚本,并传到统一存放日志的服务器上.  www.ahlinux.com 2 安装ncftp包,用于日志传输时使用. 3 简单切割脚本如下: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin export PATH yesterday=`date +%

简单的nginx日志切割脚本

#!/bin/bash savepath_log='/opt/apps/nginx/nglogs' nglogs='/opt/apps/nginx/logs' mkdir -p ${savepath_log}/$(date +%Y)/$(date +%m) mv $nglogs/error.log ${savepath_log}/$(date +%Y)/$(date +%m)/error.$(date +%Y%m%d).log mv $nglogs/access.log ${savepath_l

Nginx日志切割并计划任务自动上传到FTP服务器

枫城浪子原创,转载请标明出处! 微信bh19890922 QQ445718526,490425557 更多技术博文请见个人博客: https://fengchenglangzi.000webhostapp.com http://fengchenglangzi.blog.51cto.com 一.简述 Nginx WEB服务器每天会产生大量的访问日志,而且不会自动地进行切割,如果持续天数访问,将会导致该access.log日志文件容量非常大,不便于SA查看相关的网站异常日志,并且后期进行分割非常不易

Nginx日志切割,无缝升级

概述: nginx中有两种比较常用的日志文件,访问日志access.log和错误日志error.log,访问日志记录了客户端访问服务器的输出信息,错误日志记录了本地localhost的故障信息.因此合理的管理日志文件对运维人员的工作不言而喻,以下是摘自互联网的脚本,来学习参考已经试验过,可以投入生产环境使用 日志文件切割 由于 Nginx 的日志都是写在一个文件当中的,因此,我们需要每天零点将前一天的日志存为另外一个文件,这里我们就将 Nginx 位于 logs 目录中的 access.log