Postgresql

刪除舊的 postgresql 日誌文件 (Ubuntu)

  • March 26, 2016

在託管 postgresql 數據庫的 Ubuntu 機器中,我在/var/lib/postgresql/9.3/main/pg_log. 顯然,幾個月前的日誌文件也被儲存了。我手動刪除了一些以擺脫我的disk full錯誤。每週刪除舊的 postgresql 日誌的可靠方法是什麼?我能做些什麼postgresql.conf來自動化這個過程?

目前我有以下內容postgresql.conf

#log_truncate_on_rotation = off         # If on, an existing log file with the
                                       # same name as the new log file will be
                                       # truncated rather than appended to.
                                       # But such truncation only occurs on
                                       # time-driven rotation, not on restarts
                                       # or size-driven rotation.  Default is
                                       # off, meaning append to existing files
                                       # in all cases.
#log_rotation_age = 1d                  # Automatic rotation of logfiles will
                                       # happen after that time.  0 disables.
log_rotation_size = 100MB               # Automatic rotation of logfiles will
                                       # happen after that much log output.
                                       # 0 disables.

我想我將啟用log_rotation_age並將其值設置為30d. 但是這會自動刪除舊的日誌文件嗎?

您可以使用以下配置;

log_truncate_on_rotation = on
log_rotation_age = 1d
log_filename = 'postgresql-%a.log'
log_rotation_size = 0  #just rotate daily

這表示創建一個名稱類似於“postgresql-Mon.log”的日誌文件,並在發生輪換時覆蓋具有相同名稱的舊文件。

PostgreSQL 支持日誌輪換功能,但不支持日誌刪除功能。所以使用者應該手動刪除日誌,或者必須使用logrotate實用程序來刪除它們。

這是官方文件

引用自:https://dba.stackexchange.com/questions/133434