editing log files at post

Hugh Brown hbrown at divms.uiowa.edu
Thu Sep 2 15:47:25 UTC 2010


Jonathan Horne wrote:
> unfortunately i dont know anything about awk and sed (which is pitiful 
> considering my other experience), but i think this is likely the answer to my 
> issues.
> 
> problem: servers are not compressing log files in /var/log, despite the fact 
> that 'compress' exists in the logrotate.conf.
> 
> 
> at the end of my kickstart .cfg file, i have a line (its actually the final 
> line)
> 
> echo "compress" >> /etc/logrotate.conf
> EOF
> 
> which causes my /etc/logrotate.conf to look like this:
> 
> [root at psl-sipas04 log]# cat /etc/logrotate.conf 
> # see "man logrotate" for details
> # rotate log files weekly
> weekly
> 
> # keep 4 weeks worth of backlogs
> rotate 4
> 
> # create new (empty) log files after rotating old ones
> create
> 
> # uncomment this if you want your log files compressed
> #compress
> 
> # RPM packages drop log rotation information into this directory
> include /etc/logrotate.d
> 
> # no packages own wtmp -- we'll rotate them here
> /var/log/wtmp {
>     monthly
>     minsize 1M
>     create 0664 root utmp
>     rotate 1
> }
> 
> # system-specific logs may be also be configured here.
> compress
> [root at psl-sipas04 log]#
> 
> 
> as you can see, the 'compress' is the last line of the .conf file.  but despite 
> the fact its there, the server(s) is not compressing the log riles upon 
> rotation.  ive been under the impression that the exitance of a 'compress' in 
> the uncommented state would cause the behavior i want, but this appears to not 
> be so (not sure why here, other research required).
> 
> im wondering if i use something other than echoing the compress to the end of 
> the file, or if i use awk or sed to locate the...
> 
> #compress
> 
> and change it to...
> 
> compress
> 
> if that would help?
> 
> would anyone be able to help me with an example that would do this at the post 
> of my kickstart, instead of just appending the 'compress' at the bottom/end of 
> file?
> 
> 

According to the man page for logrotate:

Each configuration file can set global options (local definitions 
override global ones, and later  definitions  override  earlier  ones)

So, your compress is set globally and is probably being overridden in 
one of the /etc/logrotate.d/* files.  You'll need to verify that 
compress is set appropriately there for the log files you care about.

Generally, I do

cp /etc/logrotate.conf /etc/logrotate.conf.dist

sed -e 's/^#compress/compress/' /etc/logrotate.conf.dist 
 >/etc/logrotate.conf

chmod 644 /etc/logrotate.conf

the sed command should be all on one line in your script.

Be warned that if you leave *.dist files in /etc/logrotate.d/ they will 
get processed as well.  I generally copy them to /root/ before doing the 
sed command.

Hugh




More information about the Kickstart-list mailing list