我公司的程序會生成許多具有多種不同文件類型的數據。其中之一,.log
文件類型使用很多空間,因爲我不需要日誌文件,我想在程序創建它們時立即刪除它們。不幸的是我不能禁用日誌創建選項,因爲程序根本不提供這樣的選項。我想知道:在while true
循環最佳選項中運行find
與-delete
選項,還是有更好的/推薦的選項?文件出現後立即刪除特定文件類型的文件
while true
do
find -type f -name "*.log" -delete
done
我公司的程序會生成許多具有多種不同文件類型的數據。其中之一,.log
文件類型使用很多空間,因爲我不需要日誌文件,我想在程序創建它們時立即刪除它們。不幸的是我不能禁用日誌創建選項,因爲程序根本不提供這樣的選項。我想知道:在while true
循環最佳選項中運行find
與-delete
選項,還是有更好的/推薦的選項?文件出現後立即刪除特定文件類型的文件
while true
do
find -type f -name "*.log" -delete
done
你可以使用incrond
守護聽文件系統的變化,當出現或只是使用cron來刪除每一分鐘* .log文件更簡單的解決方法刪除文件。
如果您有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
它是否也工作日誌文件存儲在主日誌目錄的不同子目錄中? – burtek
是的,'inotifywait'有一個'--recursive'選項:https://linux.die.net/man/1/inotifywait –