七、Nginx日志及日志分割
(1)Nginx日志文件
查看Nginx配置文件:
找到access_log,yum安装默认存储在/var/log/nginx目录下,且默认main格式:
main格式定义:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
以上含义:
访问IP - 访问用户[访问时间] 请求方法(GET/POST) 请求体body长度 referer来源信息
http-user-agent用户代理/蜘蛛 被转发的请求的原始IP
查看默认main格式的日志文件:
(2)Nginx日志分割
Nginx不同于apache,需要将其日志进行定期切割,不然日志文件的日积月累会越加庞大,导致读取缓慢,为此需要做定时切割任务。
实验性步骤:
a.查看 日志文件位置
b.撰写日志分割脚本
脚本代码:
base_path='/var/log/nginx' #设定默认日志文件所在目录
log_path=$(date -d yesterday +"%Y%m") #设定新日志文件目录
day=$(date -d yesterday +"%Y%m%d%H%M") #设定日期变量
mkdir -p $base_path/logs/$log_path #创建日志存放目录(按月)
mv $base_path/access.log $base_path/logs/$log_path/access_$day.log #移动Nginx默认日志文件并按date变量重命名
kill -USR1 `cat /var/run/nginx.pid` #重读日志
c.Crontab 定时执行:
代码:*/1 * * * * sh /var/log/nginx/cutlog.sh #每分钟执行一次
d.每隔1分钟刷新访问服务器,发现自动化脚本已被执行,每分钟生成一个日志文件:
最终自动化执行脚本代码:
base_path='/var/log/nginx'
log_path=$(date -d yesterday +"%Y%m")
day=$(date -d yesterday +"%Y%m%d")
mkdir -p $base_path/logs/$log_path
mv $base_path/access.log $base_path/logs/$log_path/access_$day.log
kill -USR1 `cat /var/run/nginx.pid`
01 00 * * * /var/log/nginx/cutlog.sh #设定每天凌晨0点执行
(本文由kayvan编辑发表,内容主要收集于互联网,转载请注明出处:http://www.cnblogs.com/kayvan)