主页 > 程序开发 > 网站故障/维护 > nginx多站点日志切割

nginx多站点日志切割

更新时间:2015-08-24 21:40  来源:电脑技术网  作者:电脑技术网  查看评论
文章目录索引
文章简介
适用范围及演示工具
nginx多站点日志分割设置
nginx日志切割角本
nginx日志切割角本代码说明

文章简介

nginx服务器默认只会一直针对一个日志文件进行写入操作,不会自动进行对日志的分割,所以日志文件只会越来越大,后果就是引起网站越来越慢,那么这时我们可以写一个角本针对nginx多站点日志切割,以防止这种情况发生,本文就以在centos系统中为例,进行nginx多站点按年月日分割角本分享。

适用范围及演示工具

适用范围:centos各版本(其它系统可参考) 

演示系统:centos6.4

nginx多站点日志分割设置

第1步:下载nginx切割角本。

电脑技术网注:在本文可下载《nginx多站点按年月日分割角本》。

第2步:使用相应的xftp工具,将此文件上传到空间中。

第3步:给此文件运行执行权限,在服务器终端执行chmod +x /root/nginx_logs.sh

电脑技术网注:nginx_logs为本文所示的角本名,必须给文件执行权限,否则可能无法运行,那么就无法切割nginx日志。

第4步:运行完之后,可先直接在终端执行/root/nginx_logs.sh

电脑技术网注:运行一下看看是否正常(如无法生成相应的文件),有时因为编码或是修改方式不同出现centos无法识别的情况等。

第5步:在终端执行crontab -e命令。

第6步:在新出现的窗口中,输入“I”键,然后输入“0 0 * * * /root/nginx_log.sh”并确定。

电脑技术网注:i就是进入插入模式(编辑模式),然后输入0 0 * * * /root/nginx_log.sh,就是在每天的0时0分执行/root/nginx_log.sh这个角本。

第7步:输入完毕后按“ESC”键退出插入模式,再次输入“:wq!”并回车确定,就是保存并退出。

电脑技术网注:至此为止,本文有关nginx多站点日志切割已经分享完毕,相关不懂可留言。

nginx日志切割角本

nginx日志切割角本下载

以下是nginx日志切割角本代码分享

  1. #!/bin/bash 
  2.  
  3. log_files_path="/mnt/www/log/" 
  4. log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m") 
  5. log_files_name=(m.pc515.com www.pc515.com) 
  6. nginx_sbin="/mnt/nginx/sbin/nginx" 
  7. save_days=30 
  8.  
  9. mkdir -p $log_files_dir 
  10.  
  11. log_files_num=${#log_files_name[@]} 
  12.  
  13. for((i=0;i<$log_files_num;i++));do 
  14. mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log 
  15. done 
  16. $nginx_sbin -s reload 

nginx日志切割角本代码说明

  1. #!/bin/bash 
  2.  
  3. log_files_path="/mnt/www/log/"  网站日志的路径
  4. log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m") 切割后的日志文件存放目录,本文这里演示的存放路径为《年/月/日志名_年月日.log》,如www.pc515.com_20150815.log
  5. log_files_name=(m.pc515.com www.pc515.com) 日志文件名,如果多个日志应为www.pc515.com m.pc515.com中间为空格隔开
  6. nginx_sbin="/mnt/nginx/sbin/nginx" nginx安装目录中的nginx启动文件。
  7. save_days=30 
  8.  
  9. mkdir -p $log_files_dir 创建文件
  10.  
  11. log_files_num=${#log_files_name[@]} 
  1. for((i=0;i<$log_files_num;i++));do 以下就是自动循环操作移动这个日志到相应的文件目录中,并重新修改文件名等。
  2. mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log 
  3. done 
  4. $nginx_sbin -s reload 以上操作完毕后,就会把nginx平滑启动一次。

 

有关centos | nginx | 的文章推荐