Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Postfix log

    Scheduled Pinned Locked Moved pfSense Packages
    5 Posts 4 Posters 4.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tritron
      last edited by

      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.

      1 Reply Last reply Reply Quote 0
      • marcellocM
        marcelloc
        last edited by

        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/

        Treinamentos de Elite: http://sys-squad.com

        Help a community developer! ;D

        1 Reply Last reply Reply Quote 0
        • L
          LinuxTracker
          last edited by

          @marcelloc:

          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-depends

          Problem 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

          1 Reply Last reply Reply Quote 0
          • L
            LinuxTracker
            last edited by

            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.

            1 Reply Last reply Reply Quote 0
            • D
              DQM
              last edited by

              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 || true

              endscript
                   }

              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.conf

              Is it correct? (daily run at midnight)

              P/S: I'm not a linux/*nix professional  >:(
              Thank you,
              DQM

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.