Logrotate
對大於剩餘可用空間的文件進行 Logrotate 和 copytruncate
我
/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)並監控磁碟空間以防止此類問題。