Golang使用tail重新監視被刪除檔案

2021-10-04 21:59:14 字數 1581 閱讀 1533

後來檢視了tail包內的內容終於找到

需要將之前監視開啟的tail kill之後才行

以下是模擬**

關鍵:tt.kill(nil)

var retail =

make

(chan

int,1)

var killchan =

make

(chan

int,1)

func

test_tailfile

(t *testing.t)}}

//監聽日誌檔案

func

tailfile

(file string

) config.follow =

true

seek :=

&tail.seekinfo

seek.offset =

0 seek.whence = os.seek_end

config.location = seek

var stopchan =

make

(chan

int,1)

debug

("tail"

, file)

tt, err := tail.

tailfile

(file, config)

if err !=

nil//每經過2s彙總一次日誌資訊(number)

gofunc()

l.text =

"sum"

tt.lines

case

debug

("stop sum"

) killchan

1//防止定時寫入已關閉的tail

return}}

}()var num int

for line :=

range tt.lines

//接收到彙總訊號

if linestr ==

"sum"

//資料清空

num =0}

}}//模擬日誌輸入

func

write

(file string)_

, err = f.

write([

]byte

("continue \n"))

if err !=

nil f.

close()

i +=

1debug

("add log"

, i)

if i >10}

}

如果沒有kill直接tail.tailfile() 可以看到下圖的結果

雖然顯示監聽了但並沒有監聽到新建立檔案內的內容

kill之後重新監聽則可以正常獲取到新檔案內的內容

使用tail命令檢視日誌

tail 命令是用來檢視檔案最後幾行資訊的 與head命令相對應 使用 f 引數後就變成了檢視日誌的好工具。tail f 可以跟蹤日誌變化,也就是當檢視的檔案有變化時tail會自動顯示最新的內容。如有檔案 test,內容為 1.hahaha 此時我執行如下命令 niu niu download ta...

Linux中tail命令使用

tail 命令從指定點開始將檔案寫到標準輸出.使用tail命令的 f選項可以方便的查閱正在改變的日誌檔案,tail f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容.1 命令格式 tail 必要引數 選擇引數 檔案 2 命令功能 用於顯示指...

tail命令使用說明

1 命令概述 tail用於顯示檔案尾部的內容,預設在螢幕上顯示指定檔案的末尾10行。如果給定的檔案不止乙個,則在顯示的每個檔案前面加乙個檔名標題。2 命令語法 tail 選項 檔案 3 命令選項 f 顯示檔案最新追加的內容,該引數用於監視file檔案增長。n number 顯示最後number行 c...