3
我有一個生成日誌文件的PHP腳本。另一方面,我有另一個腳本,應該每小時運行一次來處理日誌文件。如何複製一個文件並截斷原始沒有dataloss使用PHP
在我的第二個腳本中,我想複製和截斷日誌文件,而不寫入任何數據。
在我一直在使用重命名有限的測試,創建副本,我得到預期的結果
但我有過這種做法的正確性關注。
這是安全嗎?
我有一個生成日誌文件的PHP腳本。另一方面,我有另一個腳本,應該每小時運行一次來處理日誌文件。如何複製一個文件並截斷原始沒有dataloss使用PHP
在我的第二個腳本中,我想複製和截斷日誌文件,而不寫入任何數據。
在我一直在使用重命名有限的測試,創建副本,我得到預期的結果
但我有過這種做法的正確性關注。
這是安全嗎?
你在做什麼被稱爲「日誌輪轉」,是的,通過重命名日誌文件是安全的。
在Linux中,您可以在另一個應用程序寫入它重命名文件,並且該應用程序將繼續寫入重命名的文件。有關詳細信息,請參見this SO answer。
在Windows中,如果打開文件的應用程序在調用CreateFile時設置了FILE_SHARE_DELETE標誌,則只能重命名打開的文件。如果該標誌被設置,它的工作方式與Linux上的相同(應用程序繼續寫入重命名的文件)。如果未設置,則重命名文件的任何嘗試都將失敗。
您可能也有興趣logrotate命令。
如何登錄到數據庫 – 2012-08-15 20:09:11