1、日志管理html
先来看看ngnix的配置文件的server段linux
接下来咱们解释一下默认格式的具体意思nginx
#log_format main '$remote_addr(远程IP) - $remote_user(远程用户) [$time_local](访问时间) "$request"(请求方式) 'shell
# '$status(状态30二、40四、40一、403等) $body_bytes_sent(请求体 body 长度等) "$http_referer"(referer来源信息) 'bash
# '"$http_user_agent(用户代理)" "$http_x_forwarded_for(被转发的请求的原始IP)"';服务器
注:(1)http_x_forwarded_for:在通过代理时,代理把你的原本IP加在此头信息中,传输你的原始IPide
(2)日志的格式咱们也能够本身定义学习
咱们具体看一下日志记录的信息测试
Ngnix容许针对不一样的server作不一样的log,接下来咱们本身作一个spa
保存并退出,而后从新加载一次配置文件
由于咱们没开启日志格式,进入配置文件开启便可
接下来重载配置文件成功,而后访问下服务器,再查看log目录下是否有kelly.log日志文件,而后在more kelly.log看是否有日志记录
2、用定时任务完成日志切割备份
思路:用shell写一个脚本,每到00:00:01时就把昨天的日志按日期时间格式重命名,放在相应的目录下,再用USR1信息号控制ngnix从新生成新的日志文件。
接下来咱们在/usr/local/ngnix/data目录下作实验,建立一个shell脚本,文件名为runlog.sh
我如下图对此脚本作详细解释
我附上该shell脚本源码,方便读者作测试:
#!/bin/bash base_path='/usr/local/nginx/logs' log_path=$(date -d yesterday +"%Y%m") day=$(date -d yesterday +"%d")mkdir -p $base_path/$log_pathmv $base_path/access.log $base_path/$log_path/access_$day.log #echo $base_path/$log_path/access_$day.log kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
接下来作个定时任务,按指定时间自动执行此脚本(这里我是作测试,因此我每分钟执行一下这个脚本,方便看效果)
而后查看最终效果
此时,咱们已经完成了用定时任务执行脚本,而后作日志切割备份。
若是您以为您能在此博文学到了新知识,请为我顶一个,如文章中有解释错的地方,欢迎指出。
互相学习,共同进步!
本文来自:Linux学习网