2012-08-15 47 views
3

我有一個生成日誌文件的PHP腳本。另一方面,我有另一個腳本,應該每小時運行一次來​​處理日誌文件。如何複製一個文件並截斷​​原始沒有dataloss使用PHP

在我的第二個腳本中,我想複製和截斷日誌文件,而不寫入任何數據。

在我一直在使用重命名有限的測試,創建副本,我得到預期的結果

但我有過這種做法的正確性關注。

這是安全嗎?

+0

如何登錄到數據庫 – 2012-08-15 20:09:11

回答

1

你在做什麼被稱爲「日誌輪轉」,是的,通過重命名日誌文件是安全的。

  • 在Linux中,您可以在另一個應用程序寫入它重命名文件,並且該應用程序將繼續寫入重命名的文件。有關詳細信息,請參見this SO answer

  • 在Windows中,如果打開文件的應用程序在調用CreateFile時設置了FILE_SHARE_DELETE標誌,則只能重命名打開的文件。如果該標誌被設置,它的工作方式與Linux上的相同(應用程序繼續寫入重命名的文件)。如果未設置,則重命名文件的任何嘗試都將失敗。

您可能也有興趣logrotate命令。

相關問題