Linux

tac 命令對大文件的效率如何

  • October 4, 2016

tac命令( reversed )可cat用於向後讀取文件,就像cat從開頭讀取文件一樣。我想知道,這有多有效。它是否必須從頭開始讀取整個文件,然後在到達末尾時反轉一些內部緩衝區?

我打算將它用於一些經常呼叫的監視腳本,該腳本需要檢查數百兆字節大小的文件的最後 n 行。但是,我不希望通過一遍又一遍地讀取文件(大約每分鐘一次左右)來導致沉重的 I/O 負載或用其他無用的資訊填充記憶體空間。

任何人都可以闡明該命令的效率嗎?

如果使用得當,tac效率與tail- 一次讀取 8K 塊,從後面搜尋相當有效。

除其他外,“正確使用”需要在您的文件上為其提供直接、可搜尋的句柄:

tac yourfile   # this works fine

…或者…

tac <yourfile  # this also works fine

不是

# DON'T DO THIS:
# this forces tac to copy "yourfile" to a new temporary file, then uses its regular
# algorithm on that file.
cat yourfile | tac

logstash也就是說,與使用可以輸入索引儲存和/或生成事件以供 CEP 引擎進行實時分析的類似工具相比,我認為重複執行這種性質的工具是一種非常低效的日誌掃描方式例如EsperApache Flink

引用自:https://serverfault.com/questions/663038