1. 程式人生 > >Linux 擷取線上日誌

Linux 擷取線上日誌

  1. 按日期擷取線上日誌命令
    (1)首先,需清楚日誌輸出的時間日期格式,具體命令如下:
    sed -n ‘/6-5 00:00:00/,/6-5 16:30:31/’p catalina.log > test.log
    上面的命令就代表擷取總日誌catalina.log中日期為6月5號0點到16點30分31秒的日誌,並輸出重定向到test.log。
    (2)其中日期格式不同就只需修改下日期格式即可,如下只需改日期即可:
    sed -n ‘/1-09 15:00:00/,/1-09 16:30:31/’p catalina.log > catalina.2017-01-09.log
    這樣就可以取出1月9號下午15點到下午16點30分31秒的日誌。
  2. 按行數擷取線上日誌
    (1)首先,先檢視總日誌,如下面操作:
    vi catalina.log
    輸入英文的冒號,再輸入set nu,顯示行數,然後定位一下你所需取的行數,接著輸入命令:
    sed -n ‘10000,20000p’ catalina.log > test.log
    這樣就可以取出10000到20000行的日誌。
    (2)其中,我們要定位其行數時,我們可以這樣操作:
    vi catalina.log
    輸入英文的冒號,先輸入set nu,顯示出日誌的行數,接著繼續輸入 /linmoumou 或者 ?linmoumou,這樣就可以搜尋定位到linmoumou這樣的字串,然後再根據日期,定位到其行數,就可以輸入命令取行數的日誌,大約取多少行看具體情況了!
  3. 擷取距離尾部多少行日誌,即最近多少行的日誌:
    這種取日誌方法要分兩種情況:
    (1) 第一種,用sudo命令取日誌:
    首先,需到你這個使用者的工作目錄,可以輸出以下命令:
    cd ~ 這樣便可進入工作目錄,用pwd檢視當前路徑,基本都是/home/test這樣類似的
    然後,就可以輸入以下命令:
    sudo tail -270000 /tomcat/logs/catalina.log > catalina
    其中這種需加上你所取的檔案路徑,要不然會取不出來,這樣可取出最近270000行的日誌,並重定向輸出到catalina這個檔案中。
    (2)第二種,這種跟上面的有點區別,這種可以直接進入總日誌的檔案目錄,然後輸入命令:
    sudo sh -c “tail -20000 catalina.log > catalina”
    這樣就可以取出最近20000行的日誌,並重定向輸出到catalina檔案中。

注:以上幾種方法,對於取線上日誌,查詢定位問題很有幫助,需瞭解。
上面的命令大部分需進入所有總日誌的路徑,然後才執行命令,並且注意後面重定向檔案的時候,不要取和總日誌相同的名字,最好取時間日期命名格式,方面查詢。

這些東西都是工作期間同事所教的,這裡要多謝同事的分享,畢竟我還是一個新手,還有自己執行,摸索得到的,如有錯誤,請指出,謝謝!