iT邦幫忙

0

如何刪除linux排程產生的0K log檔

hsiang11 4 月前4064 瀏覽

因為要將php錯誤輸出至log檔
指令
xxx.php 2> date +\%Y\%m\%d\%H\%Merror.log
排程每分鐘執行一次
但是會造成php輸出0K檔案大小的log不斷產生

有沒有方法讓0K log產生時略過產生檔案
或是 在產生0K檔案時自動刪除檔案?
只讓系統產生正常錯誤檔案

slime iT邦大師 1 級 ‧ 4 月前 檢舉
自動刪除
crontab
*/5 * * * * find /log -type f -iname *error.log -size 0 -exec rm -fr "{}" \;

1 個回答

1
weiclin
iT邦高手 7 級 ‧ 4 月前
最佳解答

一個簡單好用的技巧是讓他複寫掉舊的log
例如 xxx.php 2> date +\%derror.log 等於保留一個月的 log
到下個月時他又會從一號 log 檔開始寫入, 蓋掉舊的
如果是每小時執行一次, 只保留一天那就用 date +\%Herror.log 保留 24 個 log 檔
每小時一次, 要保留一個月, 就是 date +\%d\%Herror.log
這樣就不用煩惱要刪除的問題了, 出錯的機會也比較少

hsiang11 iT邦新手 4 級 ‧ 4 月前 檢舉

那如果每3分鐘log一次要怎麼保留比較好?
算一下一個月可以產檔14400個 非常可怕

weiclin iT邦高手 7 級 ‧ 4 月前 檢舉

三分鐘的話, 你就在 date 裡面包含分鐘的數值即可

我要發表回答

立即登入回答