Re: Log retention query
Ron Johnson <ronljohnsonjr@gmail.com>
From: Ron Johnson <ronljohnsonjr@gmail.com>
To: pgsql-general <pgsql-general@postgresql.org>
Date: 2025-01-28T14:20:59Z
Lists: pgsql-general
Deleting old log files is _NOT_ a Postgresql problem. Bash and crontab
work perfectly for me.
(Could I have done a one-liner like Junwang? Sure, but I like the obvious
and explicit.)
declare -i Weeks=8
declare -i Days=$Weeks*7
declare Dir=/var/log/postgresql
declare OldFiles=$(find $Dir/p*-*log* -mtime +$Days | sort)
if [ -z "$OldFiles" ];
then
echo "No old files to delete in ${Dir}."
else
rm -v $OldFiles
fi
On Tue, Jan 28, 2025 at 8:41 AM Paul Brindusa <paulbrindusa88@gmail.com>
wrote:
> @Junwang apologies, I should have mentioned that we've tried setting up a
> crontab and it has not worked. Have you got something similar working?
>
> @Laurenz: log_filename: postgresql-%Y-%m-%d.log -- if we redo the syntax
> can we make it trigger garbage collection on 180 days?
>
> On Tue, Jan 28, 2025 at 1:28 PM Laurenz Albe <laurenz.albe@cybertec.at>
> wrote:
>
>> On Tue, 2025-01-28 at 09:57 +0000, Paul Brindusa wrote:
>> > Good morning everyone,
>> >
>> > Before I get on with today's problem, I would like to say how much I
>> appreciate this community and everything that you do for end users.
>> >
>> > In today's problem I would like to understand if the following lines in
>> our config handle the log rotation for our clusters?
>> >
>> > log_checkpoints: on
>> > logging_collector: on
>> > log_truncate_on_rotation: on
>> > log_rotation_age: 1d
>> > log_rotation_size: 1GB
>> > log_error_verbosity: verbose
>> >
>> > I have been deleting the logs manually for the last month, since I am
>> confused how the log collector rotates them.
>> >
>> > Am looking to delete logs older than 180 days. What are we doing wrong
>> in the config?
>>
>> It all depends on how you configured "log_filename".
>>
>> If the setting is "postgresql-%a.log" or "postgresql-%d.log", PostgreSQL
>> will recycle the old log files once a week or once a month.
>>
>> If the setting is the default "postgresql-%Y-%m-%d_%H%M%S.log", the same
>> log file name will never be reused, and there will be no log rotation.
>>
>> PostgreSQL doesn't actively delete old log files.
>>
>> Yours,
>> Laurenz Albe
>>
>
>
> --
> Kind Regards,
> Paul Brindusa
> paulbrindusa88@gmail.com
>
>
--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!