# %a = lowercase abbreviated weekday name (sun..sat) # %A = full weekday name, variable length (Sunday..Saturday) # %d = day of the month (01..31) # %e = day of the month, blank padded (1.31) # %B = full month name, variable length (January..December) # %b = lowercase three-letter representation of month (jan..dec) # %h = same as %b # %m = 2-digit representation of month (01..12) # %w = day of week (0..6); 0 = Sunday # %y = 2-digit representation of year (00..99) # %Y = 4-digit representation of year (1970...) # %n = logname from column 1 # %s = text after last slash in directory naming log location # col1 = log filename (regular expressions OK) # col2 = frequency of rotation (daily, monthly) # col3 = output filename # col4 = output directory # an associative array is built as the file is parsed, FOR EACH ENTRY # $log{$col1}[n] = final log directory+filename # # i.e. # /var/log/httpd/example.com { # access daily %d%b%y.%n /mnt/Logs/WWW/%s/%y%m%d # error monthly %y%m.%n /mnt/Logs/WWW/%s/%y%m # } # results in # $log{"access"}[0] = "/mnt/Logs/WWW/example.com/%y%m%d/%d%b%y.%n"; # $log{"error"}[0] = "/mnt/Logs/WWW/example.com/%y%m/%y%m.%n"; # # This can be used in an action line: # gzip -9 %/access/% # would then gzip all access logs that have been successfully processed up # to that point. Can also use any other regular expressions. i.e. match # and gzip all logs: # gzip -9 %/.*/% # NOTE: %n still expands to the full name of the log, not whatever matches # we'll do the monthly entries first, since they probably get fewer # hits and can afford to sit before a restart /var/log/httpd-local/feltesgroup.com { access monthly %y%m.%n /mnt/Logs/WWW/feltesgroup.com error monthly %y%m.%n /mnt/Logs/WWW/feltesgroup.com } /var/log/httpd-local/mhonarc.org { access monthly %y%m.%n /mnt/Logs/WWW/mhonarc.org error monthly %y%m.%n /mnt/Logs/WWW/mhonarc.org } /var/log/httpd-local/hort.net { access monthly %y%m.%n /mnt/Logs/WWW/hort.net error monthly %y%m.%n /mnt/Logs/WWW/hort.net } /var/log/httpd-local/devilstick.org { access monthly %y%m.%n /mnt/Logs/WWW/devilstick.org error monthly %y%m.%n /mnt/Logs/WWW/devilstick.org } /var/log/httpd-local/hellebores.hort.net { access monthly %y%m.%n /mnt/Logs/WWW/hellebores.hort.net error monthly %y%m.%n /mnt/Logs/WWW/hellebores.hort.net } /var/log/httpd-local/munchkinnursery.com { access monthly %y%m.%n /mnt/Logs/WWW/munchkinnursery.com error monthly %y%m.%n /mnt/Logs/WWW/munchkinnursery.com } # ---------------------------------------------------------------------- # Now we'll do the dailies, with the most frequent last /var/log/httpd-local/bftopics.org { access daily %d%b%y.%n /mnt/Logs/WWW/bftopics.org/%y%m error monthly %y%m.%n /mnt/Logs/WWW/bftopics.org } /var/log/httpd-local/heronswood.com { access daily %d%b%y.%n /mnt/Logs/WWW/heronswood.com/%y%m error monthly %y%m.%n /mnt/Logs/WWW/heronswood.com/%y%m } /var/log/httpd-local/mallorn { access daily %d%b%y.%n /mnt/Logs/WWW/mallorn.com/%y%m error monthly %y%m.%n /mnt/Logs/WWW/mallorn.com/%y%m } /var/log/httpd-local/lalecheleague.org { access daily %d%b%y.%n /mnt/Logs/WWW/lalecheleague.org/%y%m error monthly %y%m.%n /mnt/Logs/WWW/lalecheleague.org/%y%m } ACTION { /etc/rc.d/init.d/httpd restart # compress all log files moved this time through gzip -9 %/.*/% } /var/log/httpd/secure/mallorn.com { access monthly %y%m.%n /mnt/Logs/WWW/secure/mallorn.com/%y%m error monthly %y%m.%n /mnt/Logs/WWW/secure/mallorn.com/%y%m cipher monthly %y%m.%n /mnt/Logs/WWW/secure/mallorn.com/%y%m } ACTION { # restart httpsd /etc/rc.d/init.d/httpsd restart mail -s "httpsd restarted" sysadmin < /dev/null }