Ngnix 日志管理及 Shell 实现定时完成日志切割
2018-07-13 08:56:55来源:编程学习网 阅读 ()
一、日志管理
先来看看ngnix的配置文件的server段
接下来我们解释一下默认格式的具体意思
#log_format main ‘$remote_addr(远程IP) – $remote_user(远程用户) [$time_local](访问时间) “$request”(请求方式) ‘
# ‘$status(状态302、404、401、403等) $body_bytes_sent(请求体 body 长度等) “$http_referer”(referer来源信息) ‘
# ‘”$http_user_agent(用户代理)” “$http_x_forwarded_for(被转发的请求的原始IP)”‘;
注:(1)http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP
(2)日志的格式我们也可以自己定义
我们具体看一下日志记录的信息
Ngnix允许针对不同的server做不同的log,接下来我们自己做一个
保存并退出,然后重新加载一次配置文件
因为我们没开启日志格式,进入配置文件开启即可
接下来重载配置文件成功,然后访问下服务器,再查看log目录下是否有kelly.log日志文件,然后在more kelly.log看是否有日志记录
二、用定时任务完成日志切割备份
思路:用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_path mv $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`
接下来做个定时任务,按指定时间自动执行此脚本(这里我是做测试,所以我每分钟执行一下这个脚本,方便看效果)
然后查看最终效果
此时,我们已经完成了用定时任务执行脚本,然后做日志切割备份。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 系统管理员应该知道的 20 条 Linux 命令 2018-07-13
- 12个linux进程管理命令介绍 2018-07-13
- 如何在 Apache、Ngnix 和 Lighttpd 上启用 HTTP 公钥固定扩 2018-07-13
- 在Linux上配置Memcached输出日志方法详解 2018-07-13
- 常用Apache日志分析命令大全 2018-07-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash