今天公司DNS切換,結果napoli這邊收到大量報警,這就奇怪了,數據都是正確的,報警的結果確都是錯誤的,調試了一些腳本,發現有這個奇怪的文本" Binary file (standard input) matches "原來grep把輸入數據臨時文件當成是二進制文件了,這里加 -a 就可以解決這個問題。
但是,為什么文本文件會被當成是二進制文件?和今天的DNS切換有什么關系?分析后發現,因為dns的問題,抓數據的腳本執行時間明顯變長,這樣,在文件還在寫入的時候,監控腳本就開始讀取數據文件,在這樣的并發訪問下,grep會認為自己正在訪問一個binary文件,導致監控誤報警。