shell使用(1)篩選日誌內容 重新執行刪除操作

2021-07-04 23:34:34 字數 1668 閱讀 1144

shell指令碼,查詢某一時間段的所有log,篩選出所有刪除成功的記錄,提取記錄中的id,判斷id是否刪除成功,並重新執行刪除操作。

#!/bin/sh

file_base_front="indexing-2015-08-2";

file_base_mid="_";

file_base_end=".0.log";

out="./outlog/out;

# 也可以直接通過(for ofile in ./*

)遍歷當前目錄下所有檔案,減少定義的變數,可讀性更好。

for ((file_front=5;file_front<=6;file_front++))

do#082500-082519

for ((file_mid=0;file_mid<=1;file_mid++))

dofor ((file_end=0;file_end<=9;file_end++))

do # 用變數組成所有待查詢的檔名,通過grep,篩選出所有「delete」的「wall*****」記錄

cat $$file_front$$file_mid$file_end$ | grep wall***** | grep delete_vertex > $$file_front$$file_mid$file_end

done

done

# 082520-082523

file_mid=2;

for ((file_end=0;file_end<=3;file_end++))

do cat $$file_front$$file_mid$file_end$ | grep wall***** | grep delete_vertex > $$file_front$$file_mid$file_end

done

done

# 篩選後的記錄存放在./outlog/目錄下,首先刪除所有空檔案

for ofile in ./outlog/*

do [ ! -s $ofile ] && rm -f $ofile

done

outfile=".suc"

# 在這些記錄中,選擇刪除成功的記錄,重定位到新檔案中

for ofile in ./outlog/*

do cat $ofile | grep "資料成功" > $ofile$outfile

done

resdir="./resdir/";

findir="_find";

deletedir="_delete";

#使用字串擷取,提取記錄中的entryid

for ofile in ./outlog/*.suc

do cat $ofile | while read myline

dostr=$

res=$

#對每個id執行一遍查詢和delete操作,並儲存呼叫curl的結果,重定位到檔案中

python寫入日誌檔案時日誌內容重複寫入

python寫入日誌檔案時日誌內容重複寫入 原因handler未移除,導致重複寫入 問了度娘之後,大概搞明白了,就是你第二次呼叫log的時候,根據getlogger name 裡的name獲取同乙個logger,而這個logger裡已經有了第一次你新增的handler,第二次呼叫又新增了乙個hand...

Python 將print內容重定向到日誌檔案

我的方法 開啟乙個檔案,然後把螢幕輸出流重定向到檔案輸出流 import sys,time log file open time.strftime y m d h m s format time.localtime time.time log w sys.stdout log file print ...

nginx訪問日誌分析,篩選時間大於1秒的請求

usr bin env python 處理訪問日誌,篩選時間大於1秒的請求 with open test.log a encoding utf 8 as f a with open wkxz api.access.log as f for line in f.readlines if line 2 ...