В современных инсталляциях Postgresql под высокие нагрузки я неоднократно видел печаль, когда заканчивается место на диске, отведенное для логов Postgresql. Смертельного с СУБД Postgresql ничего не произойдет, СУБД Postgresql не остановиться, однако такой важной сущности, как логов для конкретного момента может и не быть. Что бы исключить любую возможность потери информации в логах Postgresql можно задействовать Logrotate. Для работу буду использовать уже готовую и описанную раннее виртуальную машину с отдельными дисками /data; /wal; /log и диск с ОС. 1. Подготовка директорий на диске с ОС:
mkdir -p /log/llog # сервисная директория записи логов скрипта logclean.sh
mkdir -p /postgres/scripts/logrotate/ # сервисная директория для logrotate
chown -R postgres:postgres /log
chown -R postgres:postgres /postgres 2. Подготовка logrotate:
cp /usr/sbin/logrotate /postgres/scripts/logrotate/
vim /postgres/scripts/logrotate/logrotate.conf
/log/pg_log/*.log -rt|head -n -1|sed 's/^/\/log\/pg_log\