nginx 日志分割
2013-06-24 12:51
204 查看
参考了红薯的这篇文章:
http://www.oschina.net/bbs/thread/13
为避免原文删除,拷贝过来:
由于我们分域名网站众多,以前通过cronolog将apache的log自动按照yyyy-mm-dd截断成每天的各分网站日志,然后通过bash脚本 使用awstat生成所有分网站的log分析页面,以便所有网站日志的统一管理和浏览。但是nginx的配置文件中不支持cronolog的管道,只好通 过手动的方式来截取生成每天的各网站日志。
在nginx.conf中定义log:
在http{}内定义log格式:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $apache_bytes_sent '
'"$http_referer" "$http_user_agent"';
log_format表示log格式,combined表示定义的格式名称,后面表示格式样式。
在server{}内定义日志文件的位置和相应的格式:
access_log /data/weblogs/www1_access.log combined;
nginx可接受的信号如下: Signal Action
TERM, INT Terminate the server immediately
QUIT Stop the server
HUP Configuration changes, start new workers, graceful stop of old workers
USR1 Reopen log files
USR2 Upgrade the server executable
WINCH Graceful Stop (parent process advise the children to exit)
kill -HUP pid 重新应用配置文件
kill -USR1 pid 重新刷新log
通过如下方式达到日志轮询的目的:
# vi logcron.sh
log_dir="/data/weblogs"
date_dir=`date +%Y/%m/%d/%H`
/bin/mkdir -p ${log_dir}/${date_dir} > /dev/null 2>&1
/bin/mv ${log_dir}/access.log ${log_dir}/${date_dir}/access.log
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
定义一个cron,在每天晚上23:59:50执行这个脚本,后面的事情就交给awstats了。有一个注意点:`千万别改成',这是两个不同的符号。
可能是太简单,红薯没有给出cron的写法,我自己第一次用,弄了半天才弄好,写法如下:
vi /etc/crontab
我们是要在每天00:01的时候执行分割任务:
在crontab里面添加下面内容(注意修改logcron.sh文件的位置):
1 0 * * * root /data/logs/nginx/logcron.sh
保存后重新记载以下crontab的配置就OK了。
service crond reload
搞定,收工。
http://www.oschina.net/bbs/thread/13
为避免原文删除,拷贝过来:
由于我们分域名网站众多,以前通过cronolog将apache的log自动按照yyyy-mm-dd截断成每天的各分网站日志,然后通过bash脚本 使用awstat生成所有分网站的log分析页面,以便所有网站日志的统一管理和浏览。但是nginx的配置文件中不支持cronolog的管道,只好通 过手动的方式来截取生成每天的各网站日志。
在nginx.conf中定义log:
在http{}内定义log格式:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $apache_bytes_sent '
'"$http_referer" "$http_user_agent"';
log_format表示log格式,combined表示定义的格式名称,后面表示格式样式。
在server{}内定义日志文件的位置和相应的格式:
access_log /data/weblogs/www1_access.log combined;
nginx可接受的信号如下: Signal Action
TERM, INT Terminate the server immediately
QUIT Stop the server
HUP Configuration changes, start new workers, graceful stop of old workers
USR1 Reopen log files
USR2 Upgrade the server executable
WINCH Graceful Stop (parent process advise the children to exit)
kill -HUP pid 重新应用配置文件
kill -USR1 pid 重新刷新log
通过如下方式达到日志轮询的目的:
# vi logcron.sh
log_dir="/data/weblogs"
date_dir=`date +%Y/%m/%d/%H`
/bin/mkdir -p ${log_dir}/${date_dir} > /dev/null 2>&1
/bin/mv ${log_dir}/access.log ${log_dir}/${date_dir}/access.log
kill -USR1 `cat /opt/nginx/logs/nginx.pid`
定义一个cron,在每天晚上23:59:50执行这个脚本,后面的事情就交给awstats了。有一个注意点:`千万别改成',这是两个不同的符号。
可能是太简单,红薯没有给出cron的写法,我自己第一次用,弄了半天才弄好,写法如下:
vi /etc/crontab
我们是要在每天00:01的时候执行分割任务:
在crontab里面添加下面内容(注意修改logcron.sh文件的位置):
1 0 * * * root /data/logs/nginx/logcron.sh
保存后重新记载以下crontab的配置就OK了。
service crond reload
搞定,收工。
相关文章推荐
- 使用linux自带的logrotate对nginx日志进行分割
- nginx多server日志分割脚本分享
- nginx 直接在配置文章中设置日志分割
- 对nginx的日志进行分割的shell脚本
- Nginx按天分割轮询日志文件
- nginx日志分割
- nginx实现按日期进行日志分割
- Nginx日志分割
- nginx 日志分割脚本
- Nginx 日志按天分割
- windows下nginx日志分割
- nginx学习7——日志建立以及分割
- nginx 或tengine 访问日志分割处理
- Linux:nginx或者Apache 每天自动分割日志文件
- nginx以日期分割日志文件
- nginx日志分割
- nginx 定时分割日志
- Nginx日志、以及日志分割
- [Linux] nginx 日志分割脚本 [ 技术分享,知识分享 ]
- nginx日志分割 for linux