Linux按時間段查詢大日志表信息及按日期分割-創(chuàng)新互聯(lián)

#查nohup.out日志表2019-11-18 20:00:00 -?2019-11-18 22:00:00這兩小時的記錄(前提是日志里有這樣的格式時間),并生成exchange_update.log

目前成都創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站運營、企業(yè)網(wǎng)站設計、葉縣網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

cat nohup.out | sed -n '/2019-11-18 20:00:00/,/2019-11-18 22:00:00/ p' > exchange_update.log

-------------------------------------------------------------------------------

2020-02-31 18:21

-------------------------------------------------------------------------------

日志查詢

場景:access.log日志是一個大文件,含有所有日期的信息。但需要查詢某天某時的日志時,直接grep和sed都很耗時,所以需要先將該段日期的日志保存再查詢。

acess.log日志格式:

[12/Feb/2020:15:40:46 +0800] -- 101.20.18.75 -- 57197 "POST /api?apiCode=meu_mksm:info HTTP/1.1" 200 "0.011" -- "0.011" -- "gdn.cn 154.121.10.206 9443 localhost" - "https://gdn.cn:9443/view/xtgl/mksm_view.html?apiCode=meu_mksm:info&code=M9502"

nginx.conf的access.log格式設置:

'[$time_local] -- $remote_addr -- $remote_port "$request_method $request_uri $server_protocol" $status "$upstream_response_time" -- "$request_time" -- "$host $server_addr $server_port $server_name" - "$http_referer"';

先按日期查詢,并將結果保存

sed -n '/12\/Feb\/2020:15:0./,/12\/Feb\/2020:16:0./p'?acess.log?> 202021215.log #加\是為了反編譯,避免解析器將/符號當做編譯符號

sed:

-n,?--quiet,?--silent

suppress?automatic?printing?of?pattern?space # 抑制自動打印模式空間

查詢202021215.log中502響應碼

cat??202021215.log | grep "^502$"? ?#查找有單獨502字樣的段

運行結果:NULL #因為日志里本來就沒有

grep:

^ 指匹配字符串在行首

$ 指匹配字符串在行尾

精確查詢:

sed -n '/2020-02-12 15:00:00/,/2020-02-12 16:00:00/p'? ris.log

運行結果:NULL

坑點:

如果開始時間日志里面是沒有的,那么查詢結果為空,比如開始時間2020-02-12 15:00:00日志里沒有

如果結束時間日志里面是沒有的,查詢的結果就是開始時間到最后的全部日志

模糊查詢:

sed -n '/2020-02-12 15:0./,/2020-02-12 16:0./p'? ris.log? #從日志里有2020-02-12 15點0第一個字樣的開始查,直到有第一個2020-02-12 16:0字樣的結束

日志分割

此部分轉載至:https://blog.csdn.net/feinifi/article/details/78455563

場景:access.log所有日期的日志都集中在這里,查找問題不方便,需要將該日志按日期分割出來。

讓日志每天按日期保存成單個文件,腳本

#!/bin/bash

YESTERDAY=$(date -d "yesterday" +"%Y-%m-%d")

LOGPATH=/usr/local/openresty/nginx/logs/

PID=${LOGPATH}nginx.pid

mv ${LOGPATH}access.log ${LOGPATH}access-${YESTERDAY}.log

mv ${LOGPATH}error.log ${LOGPATH}error-${YESTERDAY}.log

kill -USR1 `cat ${PID}`

變更腳本為可執(zhí)行文件,并將腳本作為定時任務啟動腳本,放入crontab中。

chmod +x nginx_logback.sh

crontab -e

#!/bin/bash

0 0 * * * /bin/bash /root/nginx_logback.sh

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享標題:Linux按時間段查詢大日志表信息及按日期分割-創(chuàng)新互聯(lián)
本文鏈接:http://muchs.cn/article44/dddpee.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化品牌網(wǎng)站制作、服務器托管、網(wǎng)站設計品牌網(wǎng)站建設、自適應網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設