Thread: Log rotation
Hi to all, I configured the log rotation of postgresql started in this way: su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p /usr/bin/postmaster start > /var/log/postgresql.log 2>&1" < /dev/null with the log rotate file: /var/log/postgresql.log { compress rotate 5 size=10000k create 0664 postgres postgres daily sharedscripts copytruncate } the problem now is that the postgres server is really stressed and write continuosly on the log file and the file is not truncated!!!!! anyone have any idea?? Ciao Gaetano -- #exclude <windows> #include <CSRSS> printf("\t\t\b\b\b\b\b\b");. printf("\t\t\b\b\b\b\b\b");
Gaetano Mendola schrieb: > > Hi to all, > > I configured the log rotation of postgresql started in this way: > > su -l postgres -s /bin/sh -c "/usr/bin/pg_ctl -D $PGDATA -p > /usr/bin/postmaster start > /var/log/postgresql.log 2>&1" < /dev/null > > with the log rotate file: > > /var/log/postgresql.log { > compress > rotate 5 > size=10000k > create 0664 postgres postgres > daily > sharedscripts > copytruncate > } > > the problem now is that the postgres server is really > stressed and write continuosly on the log file > and the file is not truncated!!!!! > > anyone have any idea?? You can use multilog on linux.
"Andre Schubert" <andre.schubert@km3.de> wrote: > You can use multilog on linux. Hi, I don't know what's multilog but I resolved my problem in this way (general suggestions for all): #File postgresql.conf syslog = 2 syslog_facility = 'LOCAL0' syslog_ident = 'postgres' #File /etc/logrotate.d/postgres /var/log/postgresql.log { compress rotate 5 size=10000k errors mendola@bigfoot.com create 0664 postgres postgres daily postrotate /usr/bin/killall -HUP syslogd endscript } #In File syslog.conf LOCAL0.* /var/log/postgresql.log Ciao Gaetano -- #exclude <windows> #include <CSRSS> printf("\t\t\b\b\b\b\b\b");. printf("\t\t\b\b\b\b\b\b");
Gaetano Mendola schrieb: > > "Andre Schubert" <andre.schubert@km3.de> wrote: > > You can use multilog on linux. > > Hi, I don't know what's multilog but I resolved my > problem in this way (general suggestions for all): multilog does exactly the same as logrotate, but it is a process itself. we you it this way: su -l postgres -c "/usr/bin/pg_ctl ....' start 2>&1 | /usr/bin/multilog s16777215 n20 '/var/log/psql' &" < /dev/null Everything coming from postgres is piped through multilog and multilog creates logfiles in the directory /var/log/pgsql. Each logfile is 16777215 bytes big, and there are max 20 logfiles. There should be a multilog-rpms somewhere for linux. Hope this also helps. Regards > > #File postgresql.conf > > syslog = 2 > syslog_facility = 'LOCAL0' > syslog_ident = 'postgres' > > #File /etc/logrotate.d/postgres > > /var/log/postgresql.log { > compress > rotate 5 > size=10000k > errors mendola@bigfoot.com > create 0664 postgres postgres > daily > postrotate > /usr/bin/killall -HUP syslogd > endscript > } > > #In File syslog.conf > LOCAL0.* > /var/log/postgresql.log > > Ciao > Gaetano > > -- > #exclude <windows> > #include <CSRSS> > printf("\t\t\b\b\b\b\b\b");. > printf("\t\t\b\b\b\b\b\b"); > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org