2016-12-29 45 views
0

我公司的程序會生成許多具有多種不同文件類型的數據。其中之一,.log文件類型使用很多空間,因爲我不需要日誌文件,我想在程序創建它們時立即刪除它們。不幸的是我不能禁用日誌創建選項,因爲程序根本不提供這樣的選項。我想知道:在while true循環最佳選項中運行find-delete選項,還是有更好的/推薦的選項?文件出現後立即刪除特定文件類型的文件

while true 
do 
    find -type f -name "*.log" -delete 
done 

回答

2

你可以使用incrond守護聽文件系統的變化,當出現或只是使用cron來刪除每一分鐘* .log文件更簡單的解決方法刪除文件。

1

如果您有inotify-tools安裝(這應該是每一個Linux發行版的一部分),該腳本將阻止,等待文件創建活動,並刪除相應的文件:

inotifywait -e create --monitor --format "%w%f" ${YOUR_LOG_DIR} | egrep -- line-buffered "\.log$" \ 
     | while read -r file; do 
      rm -v $file; 
      done 
+0

它是否也工作日誌文件存儲在主日誌目錄的不同子目錄中? – burtek

+1

是的,'inotifywait'有一個'--recursive'選項:https://linux.die.net/man/1/inotifywait –

相關問題