Apache日志分割脚本

【产生背景】

随着公司的ntp中心服务器访问越来越大,access日志也是日益增加,原有的日志没有进行切割,单个日志文过大(最大的有3.7G),若清理磁盘空间会将访问日志整个删除,这样会丢失很多重要的信息,因此对日志进行切割是很有必要的,这样若日后文件过多,也可以删除历史文件。

【脚本】

#!/bin/bash

YESTERDAY=$(date -d yesterday +%Y%m%d)
GZIP="gzip -c"
LOG_FILE="/etc/httpd/logs/access_ntp.log"
LOG_BACKUP_FILE="/etc/httpd/logs/access_ntp_backup/access_ntp_${YESTERDAY}.log.gz"

$GZIP ${LOG_FILE} > ${LOG_BACKUP_FILE}
>${LOG_FILE}

将脚本加入到cron中

echo "0 0 * * * /bin/sh /scripts/rotate_access_log.sh &>/dev/null" >>/var/spool/cron/root

每天的0点0分在/etc/httpd/logs/access_ntp_backup目录下生成一个压缩的日志文件,形如access_ntp_20160514.log.gz

时间: 2024-10-05 20:40:36

Apache日志分割脚本的相关文章

Apache日志分割

1.cronolog安装 采用 cronolog 工具进行 apache 日志分割 http://download.chinaunix.net/download.php?id=3457&ResourceID=1851 下载上传安装包文件到服务器 安装日志分割工具: [[email protected] ~]# cd /data/ [[email protected] data]#tar -xvf  cronolog-1.6.2.tar.gz [[email protected] cronolog

Apache日志分割&日志分析

Apache日志分割 随着网站的访问量越来越大,默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不采用日志分割,当日志文件不断增大时,当占用太大的磁盘空间时将会被系统删除,而且随着日志文件的增大,对于管理员对Apache服务器进行访问分析.网络安全监察.网络运行状况监控等操作带来较大难度,因此管理这些海量日志对网站的意义重大. 实验描述: 完成对Apache的日志分割 本实验采用Apache2.2版本 服务器IP:192.168.100.107 所需服务:httpd.DNS 服务

Apache日志分割(rotatelogs、cronolog)

为什么要进行日志分割? 随着网站的访问量越来越大,web服务器产生的日志文件也会越来越大,如果不对其进行分割管理,单个日志文件会变得异常庞大,不利于对日志进行综合分析.监控等.另外,当服务器遇到故障时,运维人员就要打开日志文件进行分析,打开的过程必然会消耗很长时间,也势必会增加处理故障的时间.因此管理好海量的日志文件对管理网站是有重大意义的. 以下介绍两种常见的日志分割方法: 一. Apache自带的rotatelogs分割工具 1.查询rotatelogs命令的绝对路径 which rotat

nginx日志分割脚本

nginx 日志分割,可以分割一年内没有分割的日志,以每天一个日志文件打包 转载请注明出处:http://lm3810.blog.51cto.com/846925/1860543 #!/bin/bash #hls_nginx_log_cut.sh #by Louis 2016/10/10 logs_path='/data/store/logs/www/' #日志文件所在路径 files=`ls $logs_path` backup_path='/data/store/backuplogs/' #

Linux日志分割脚本

该脚本的功能是定时分割日志文件 #!/usr/bin/env bash #定时分割清理日志文件 #usage="Usage: logrotate (start|stop) file (line|size)" #usage="-e Usage: logrotate start file (line|size) or logrotate stop" usage="-e Usage: ${PROGRAM} { start file (line|size) | s

nginx 日志分割脚本

#!/bin/bash # 01 00 * * * /nginxlogs/ngx_logcut.sh  >/dev/null 2>&1   ##可以放到计划任务里自动执行脚本 pidfile=/var/run/nginx.pid      #nginx进程pid文件 logpath='/nginxlogs/'            #日志目录 keepdays=30                       #日志保存天数 logfiles=(error.log access.log

Nginx/Apache日志分析脚本

1,查看apache进程: ps aux | grep httpd | grep -v grep | wc -l 2,查看80端口的tcp连接: netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l 3,通过日志查看当天ip连接数,过滤重复: cat access_log | grep "20/Oct/2008" | awk '{print $2}' | sort | uniq -c | s

window apache 日志分割

apache  [ httpd.conf ]配置文件 #ErrorLog "logs/error.log" ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 2M" Windows下虚拟主机的日志切割 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "D:/wamp/www" ServerName

nginx或apache日志清洗脚本

#!/bin/sh zcat www_access_log.2013-12-31.gz|awk -F"\"" ' BEGIN{ OFS="@"  #输出字段之间的分隔符,用别的也可以 } { ip="" ips="" logtime="" if(match($1,/([^-]+[0-9]|-) [^ ]+ ([^ ]+ )?\[[^:]+:([^ ]+)/,f)) { ip=f[1] logtim