Lucas Chen wrote:
在某些情況下
這個動作會造成寫這個log的process core dump
或是log file再也不會更新
所以不建議這麼做
要的話也是cp後再用cat /dev/null去清空
PS.這是實務上遇到問題
應該說, 不建議對活的deamon(開啟中的log檔)動手腳.
通常cp + cat /dev/null 是很優雅的做法.
但是只有在daemon不能停, 不會rotate log, 且log檔相對較小, 且相對比較不重要的狀況才用.
如果輸出量比較大(較忙碌的伺服器), 偶而會發生一些意外狀況.
find / > /tmp/1 & sleep 1 ; cp -f /tmp/1 /tmp/2 ; cat /dev/null > /tmp/1
a.有相當的機率發生/tmp/2檔尾不完整或/tmp/1檔頭損壞, 或是兩個都壞
b.有相當的機率, 中間有可能發生部份內容遺失
* find指令模擬一個繁忙的輸出, 記錄到/tmp/1, 一秒後執行 cp + cat /dev/null
* 可用 tail 2 ; head 1 觀察中間遺失的狀況
* 可另外執行 find / 加重機器負擔, 遺失記錄的狀況會變得更嚴重
* 請自行 kill find 指令
** 通常的建議是, 使用內建的rotate功能(如果有), 或是在停下deamon的狀況下處理log檔.
** 只有在沒有其他更好的方式, 且確實了解其風險的狀況下, 才建議使用 cp + cat /dev/null.
hxxX54yPZ5HH5VHP\hmpX5gTPh99X5J4Ph00X5YBPjjhexX5exHPDX52JP555554P5ZZ5rr



























































































