Nginx 日志切割
最近还在写图床工具,涉及到日志统计相关的,比如访问统计,流量统计等,看了一下七牛的实现,发现每次创建一个bucket仓库都会自动生成一个域名,该仓库下的资源都会走这个域名。但是自己要实现这一套逻辑还是满繁琐的,所以初步还是考虑用 Nginx 的一些功能来代替,其中流量统计就考虑使用 Nginx 自带的日志来分析。 考虑到日后日志大小过大,NodeJs读取会花太多时间,所以是要按天来切割日志,刚开始我写了一个简单的脚本。利用 crontab 的定时功能。 先按日期重命名文件,然后新建一个同名的日志文件让 Nginx 来写入,实际测试发现新建的 log 并没有被写入。但是 Nginx reload 却可以,最终网上找到了 killall -s USR1 nginx 这条命令来通知 Nginx 重新创建新的日志 #!/bin/bash log_path=’/home/wwwlogs/’ log=’pic.noxxxx.com.log’ target=`date “+%Y-%m-%d_%H:%M:%S_”`${log} #echo $target cd $log_path mv $log “./”${target} killall -s USR1 nginx #touch $log