Postfix log
-
I have switched to firebox and i run post fix and var is about 50 to 60 mb in size. it seems that postfix log file grows taking up most of free space.
I wonder if there is option that prevents postfix from creating such large log file and is there command that will tell file system that space was freedup by deleting log. -
I did not included a log rotate options to this package,
try to use logrotate daemon with cron jobs
https://iamsto.wordpress.com/2012/03/24/freebsd-logrotate-add-new-file/
-
I did not included a log rotate options to this package,
try to use logrotate daemon with cron jobs
https://iamsto.wordpress.com/2012/03/24/freebsd-logrotate-add-new-file/
I thought that was a pretty good idea and set about to install logrotate. I'm running 2.0.1-RELEASE (i386) btw.
From the above link:
1. Install logrotate
#cd /usr/ports/sysutils/logrotate/
#make install clean clean-dependsProblem is /usr/ports doesn't exist. I looked for sysutils or logrotate but they weren't in there either.
Other problem is that there's no 'make' native to pfSense - except maybe in dev branches.So what about installing logrotate from the repositories?
Well,
Other other problem is that my default repository (ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/) has been archived by the FreeBSD folks.
I think it's at http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-8.1-release/Latest/Other other other problem is that a lot of my existing installed-package-dependencies are newer than the dependencies required by packages in 8.1-release.
Maybe packages from release-8.1-stable (http://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest) or later would work.Other other other other problem is that logrotate doesn't exist in the FreeBSD repository for any version of 8.1 (i386) anyway.
My solution:
pkg_add -r http://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/sysutils/logrotate-3.7.9.tbz
I installed it. So far nothing's blown up.
Edit: I should add that I```
cp /usr/local/etc/logrotate.conf.sample /etc/logrotate.conf -
After a very long time, I finally got logrotate working.
Here's how I have it configured.I created /archives directory to hold archived postfix logs.
The /usr/local/etc/logrotate.d directory is empty.
I created /etc/logrotate.conf, and am using it for the config file.
Here's what's in it.# location of archived log files olddir /archives /var/log/maillog { # rotate logs daily (at midnight via cron) daily # don't complain if log is missing missingok # keep a month's worth of logfiles rotate 30 # compress all but yesterday's logs with gzip compress delaycompress # in case log file in use by process, truncates log file then copies it copytruncate # create new empty log file w/ same permissions as old log file (unsure if needed) create 644 root wheel # date appended onto archived log names dateext # beats me - this was already here sharedscripts # restart postifx postrotate /etc/init.d/postfix reload > /dev/null 2>&1 || true endscript } # system-specific logs may be configured here
Here's the cron command I run at midnight:
/usr/local/sbin/logrotate -f -s /archives/logrotate.status /etc/logrotate.conf
-f = Forces logrotate to run.
I had to use it for testing. Once my logrorate.status file is populated, I might not need it any more.-s = sets the status file to be in the /archives directory
I'm not sure what the default directory is.I'm guessing if I could use this cron entry instead, if I wanted verbose command output from the cron job:
/usr/local/sbin/logrotate -f -v -s /archives/logrotate.status /etc/logrotate.conf >> /archives/logrotate.log
I haven't tried it yet, however.
I hope this saves someone lots of time.
-
Hi LinuxTracker,
I have followed up your steps to configure the logrotate for PF. I'd like to show you in deatails as below. Pls help to re-check and confirm if it is correct.
Step1: run command to install the logrotate
pkg_add -r http://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.2-release/sysutils/logrotate-3.7.9.tbz ( I'm using 2.0.1 RELEASE (amd64) built on Mon Dec 12 18:16:13 EST 2011 FreeBSD 8.1-RELEASE-p6)Setp2: Create Archives folder at /archives to store the archiving log. I have also created folder logrotate.d at /usr/local/etc/logrotate.d ( I don't know its function. Could you explain?)
Step3: Create file /etc/logrotate.conf with content below:
location of archived log files
olddir /archives
/var/log/maillog {
# rotate logs daily (at midnight via cron)
daily# don't complain if log is missing
missingok# keep a month's worth of logfiles
rotate 30# compress all but yesterday's logs with gzip
compress
delaycompress# in case log file in use by process, truncates log file then copies it
copytruncate# create new empty log file w/ same permissions as old log file (unsure if needed)
create 644 root wheel# date appended onto archived log names
dateext# beats me - this was already here
sharedscripts# restart postifx
postrotate
/etc/init.d/postfix reload > /dev/null 2>&1 || trueendscript
}system-specific logs may be configured here
Step4: I have tried to run the command /usr/local/sbin/logrotate -f -s /archives/logrotate.status /etc/logrotate.conf on shell console and it seems to work well.
I have also installed Cron package and created a cron job. I want this job will run at 12:00 AM daily. But I still didn't clear the time (minute, hour, mday, …) of cron job. Below is my cron job configuration:
minute: 0
hour: 24
mday: *
month: *
wday: *
who: root
command: /usr/local/sbin/logrotate -f -s /archives/logrotate.status /etc/logrotate.confIs it correct? (daily run at midnight)
P/S: I'm not a linux/*nix professional >:(
Thank you,
DQM