需求:寫乙個擷取tomcat catalina.out日誌的指令碼
tomcat例項t1-t4
# find /opt/tom/ -name catalina.out
/opt/tom/t1/logs/catalina.out
/opt/tom/t3/logs/catalina.out
/opt/tom/t4/logs/catalina.out
/opt/tom/t2/logs/catalina.out
要求:
這個指令碼可以取tomcat例項t1-t4的日誌
這個指令碼可以自定義取日誌的起始點 ,比如取今天早上10點之後到現在的資料
這個指令碼可以自定義取日誌的起始點和終點,比如取今天早上9點到晚上8點的資料
catalina.out 日誌內容
#這個指令碼用來檢視tomcat日誌
#日期:2019-12-18
lang=en
logfile=
"/opt/tom/$1/logs/catalina.out"
#將當天的英文月、數字日期、數字年作為變數賦值給d_mdy
d_mdy=
`date
"+%b %d, %y"
`#判斷引數個數
if[ $# -ne 2 ] && [ $# -ne 3 ]
then
echo
"你提供的引數個數不對,請提供2個或者3個引數。例:sh $0 t1 08:01:00 14:00:00"
exit 1
fi#判斷第乙個引數是否符合要求if!
echo$1|
grep -qe '^t1$|^t2$|^t3$|^t4$'
then
echo
"第乙個引數必須是t1、t2、t3或t4"
exit 1
fi#判斷時間有效性
judge_time(
)#將24小時制時間轉換為12小時
tr_24_12(
)#判斷提供的時間點是否在日誌**現
judge_time_in_log(
)#判斷第2個引數是否合法
judge_time $2
#判斷起始時間點是否出現在日誌裡
judge_time_in_log $2
#如果提供第3個引數
if[ $# -eq 3 ]
then
#判斷第3個引數是否合法
judge_time $3
#判斷起始時間是否早於結束時間
t1=`date -d "$2" +%s`
t2=`date -d "$3" +%s`
if[$t2 -lt $t1
]then
echo
"你提供的時間$2比$3要晚,應該把早的時間放到前面"
exit
fi#判斷提供的結束時間點是否出現在日誌中
judge_time_in_log $3
fi#取起始時間所在行行號
begin_n=
`grep -n "$d_mdy
$(tr_24_12 $2)
" $logfile|
head -1|
awk -f ':'''`
#取結束時間所在行行號,並用sed擷取日誌內容
if[ $# -eq 3 ]
then
n=`grep -n "$d_mdy
$(tr_24_12 $3)
" $logfile|
tail -1|
awk -f ':'''`
#結束日期所在行的下一行才是日誌的內容
end_n=$[
$n+1]
sed -n "$begin_n,$end_n"p $logfile
else
sed -n "$begin_n,$"p $logfile
fi
如何檢視tomcat日誌
1.tomcat的安裝路徑下tomcat home下的common資料夾下的classes資料夾中建立log4j.properties檔案,即 apache software foundation tomcat 5.5 common classes log4j.rootlogger info,con...
linux 檢視Tomcat日誌
1 先切換到 cd usr local tomcat5 logs 2 tail f catalina.out 3 這樣執行時就可以實時檢視執行日誌了 ctrl c 是退出tail命令。順便講一下linux中tail命令 tail 命令從指定點開始將檔案寫到標準輸出.使用tail命令的 f選項可以方便...
linux上 檢視tomcat日誌檔案
1 2 1 先切換到logs目錄比如 cd opt apache tomcat 7.0.65 logs 2 tail f catalina.out 3 這樣執行時就可以實時檢視執行日誌了 ctrl c 是退出tail命令。我用的putty是ctrl z 順便講一下linux中tail命令 tail ...