centos中nginx按日期自动分割访问日志
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了centos中nginx按日期自动分割访问日志,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2055字,纯文字阅读大概需要3分钟。
内容图文
Web 访问日志 (access_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。一条典型的Web访问日志如下:
192.168.50.195 - - [17/Jun/2016:23:59:12 +0800] "GET / HTTP/1.1"3040"-""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36""-"
1、 要解决问题:
当网站访问量大后,日志数据就会很多,如果全部写到一个日志文件中去,文件会变得越来越大。文件大速度就会慢下来,比如一个文件几百兆。写入日志的时候,会影响操作速度。另外,如果我想看看访问日志,一个几百兆的文件,下载下来打开也很慢。
注意:使用第三方免费的日志分析工具-日志宝,可以上传nginx、apache、iis的日志文件,它们帮助分析网站安全方面。毕竟专攻,更加专业。日志宝对上传的文件也是做了大小限制的,不超过50m。
2、日志自动切割脚本编写
nignx没有自动分开文件存储日志的机制。由于nginx它不会帮你自动分文件保存。所以,需要自己编写脚本来实现。
#!/bin/bash# Program:# Auto cut nginx log script.# 2016/6/15 luozhibo # nginx日志路径 /var/log/nginx/
LOGS_PATH=/var/log/nginx
TODAY=$(date -d'today' +%Y-%m-%d)
#echo $TODAY# 移动日志并改名
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log
# 向nginx主进程发送重新打开日志文件的信号
kill -USR1 $(cat /var/run/nginx.pid)
上面shell脚本的原理是:
先把以前的日志文件移动重命名,目的是就是备份。
3、crontab自动任务配置
直接编写vim /etc/crontab 或者 直接通过echo写入自动任务
echo '5923 * * * root /var/log/nginx/nginx_log_division.sh >> /var/log/nginx/cutnginxlog.log2>&1' >> /etc/crontab
每晚23:59分自动执行计划任务
以root用户身份运行
将自动任务的执行日志(错误和正确的日志)自动写入cutnginxlog.log
“命令 >> 2>&1” 表示以追加方式将正确输出和错误输出都保存到同一个文件中
4、参考链接:
nginx自动切割访问日志
以日期为文件名来存储nginx日志
').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('').text(i)); }; $numbering.fadeIn(1700); }); });以上就介绍了 centos中nginx按日期自动分割访问日志,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的centos中nginx按日期自动分割访问日志全部内容,希望文章能够帮你解决centos中nginx按日期自动分割访问日志所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。