nginx日志分割(log rotation)
2016-12-27 22:29
821 查看
nginx没有内置日志分割功能,容易造成日志累积,文件越来越大。必须借助于外部命令或者工具来分割日志。
本文介绍一种通过自定义脚本来分割日志的方法。
打开定时任务配置页面后,输入
可以在每天凌晨执行上述日志重命名脚本,完成日志分割任务。
注意,许多linux的系统只有root用户才可以添加定时任务,所以必须用sudo命令。
通过下面的命令查看是否添加成功:
本文介绍一种通过自定义脚本来分割日志的方法。
nginx日志及nginx.pid设置
nginx日志及进程号文件可以通过nginx.conf来修改,下面的配置将日志和nginx.pid都放在了nginx安装目录下。worker_processes 4; access_log logs/access.log main; error_log logs/error.log warn; pid logs/nginx.pid; #pid of nginx master process
日志分割脚本
将实现分割的脚本放在/usr/local/bin/rotate_nginx_log.sh,内容如下#!/bin/sh # Get yesterday's date as YYYY-MM-DD YESTERDAY=$(date -d 'yesterday' '+%Y-%m-%d') # move log mv /path/to/access.log /destination/access-$YESTERDAY.log mv /path/to/error.log /destination/error-$YESTERDAY.log PID_FILE=/usr/local/nginx/logs/nginx.pid # Tell nginx to reopen the log file. kill -USR1 $(cat $PID_FILE)
crontab配置定时任务
写好脚本后,接下来定时执行即可。sudo crontab -e
打开定时任务配置页面后,输入
0 0 * * * /usr/local/bin/rotate_nginx_log.sh 1>>/var/log/rotate_nginx.log 2>&1
可以在每天凌晨执行上述日志重命名脚本,完成日志分割任务。
注意,许多linux的系统只有root用户才可以添加定时任务,所以必须用sudo命令。
通过下面的命令查看是否添加成功:
sudo crontab -l
相关文章推荐
- 使用linux自带的logrotate对nginx日志进行分割
- Nginx日志配置及分割
- nginx 日志文件分割
- 自动分割nginx服务的日志文件
- nginx按天分割日志
- Nginx服务器log_format设置更详细的日志格式
- 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
- [日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割(脚本)
- nginx日志分割实现
- nginx日志分割
- nginx 日志分割
- logrotate 进行nginx日志分割
- shell脚本检查统计nginx访问日志access.log
- nginx 出现不该出现的 access.log 日志
- 使用Logrotate分割Nginx日志
- nginx多server日志分割脚本分享
- nginx,php日志分割
- nginx 日志设置 FOR error_log
- 使用logrotate分割nginx日志 当前nginx日志为空
- Nginx修改access.log日志时间格式