Logrotate

對大於剩餘可用空間的文件進行 Logrotate 和 copytruncate

  • April 27, 2011

/var/log在生產系統上的掛載點上收到有關磁碟空間的 Nagios 警報。

我們有一個catalina.out(Tomcat)文件,它已經增長到 768 兆,掛載點上還剩下 171 兆。

顯然 logrotate 應該已經在這台機器上執行,但沒有。標準做法catalina.out是使用copytruncate能夠在catalina.out不關閉 Tomcat 的情況下進行處理以執行此操作。

如果我簡單地添加我們的標準 Tomcat logrotate 配置,它使用copytruncate,我假設複製發生在截斷之前,因此我將用完磁碟空間。

日誌可以追溯到去年 12 月,因此不必保留所有日誌內容。

擺脫這種情況最安全的方法是什麼?純粹從邏輯上講,我認為我需要在安裝 logrotate 配置之前擺脫該文件的前 500 兆,但我什至不知道這是否可能。

我正在執行 RHEL 5.3。

最安全的方法是複制截斷到另一個掛載點。

順便說一句,171 兆(如果您要完全刪除文件,甚至 800M)是不夠的。理想情況下,您應該擁有大約 20% 的可用空間,以防有什麼需要立即使用。

另外,我建議部署一些監控解決方案(zabbix/nagios/zenoss,至少是monit)並監控磁碟空間以防止此類問題。

引用自:https://serverfault.com/questions/263790