iT邦幫忙

0

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

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

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

slime iT邦大師 1 級 ‧ 2017-02-18 18:37:49 檢舉
自動刪除
crontab
*/5 * * * * find /log -type f -iname *error.log -size 0 -exec rm -fr "{}" \;
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
weiclin
iT邦高手 4 級 ‧ 2017-02-18 20:03:58
最佳解答

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

hsiang11 iT邦好手 1 級 ‧ 2017-02-19 15:50:27 檢舉

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

weiclin iT邦高手 4 級 ‧ 2017-02-19 16:40:12 檢舉

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

我要發表回答

立即登入回答