一個查看日志的腳本

一個查日志的腳本,用處不大,還需要完善

#!/bin/bash
#Write by clb@tzg.cn
#Date:2016-9-29
####################定義功能函數部分#####################
function print_error {
        printf "\033[32;1m使用方式:  $0 -a -b -c
        -a:根據關鍵字打印日志
        -b:根據時間打印日志
        -c:打印實時日志
        \033[0m\n"
        exit 1
}

function print_date {
        printf "\033[1;32m 輸入日期 例:09 06\033[0m\n"
        read  m d
        if [ $m -gt 0 -a $m -lt 13 -a $d -gt 0 -a $d -lt 32 ];then
        printf "\033[1;32m 2016年$m月$d日\033[0m\n"
        else
        printf "\033[1;32m 請輸入正確的日期\033[0m\n"
        exit 1
        fi
}

function print_apply {
        printf "\033[1;32m 輸入需要查詢的應用\033[0m\033[1;44;31;5m\n   actprovider   act   app   awardsgrant   bi\n   b   callback   credit   currentbao   fixedbao\n   growthpoint   mq   pay   pyramid   rest   rmi\n   sms   task   wap   web\033[0m\n"
        read  apply
        if [[ $applys =~ $apply ]] ;then
        printf "\033[1;32m 尋找$apply的日志\033[0m\n"
        else
        printf "\033[1;32m 請輸入正確應用名\033[0m\n"
        exit 1
    fi
}

function print_key {
        printf "\033[1;32m 輸入關鍵字\033[0m\n"
        read keyword
        cd /opt/logs/2016.$m.$d
        cat $apply.tomcat-catalina-out | grep -n $keyword
}

function print_time {
        cd /opt/logs/2016.$m.$d
        printf "\033[1;32m 輸入時間 例:14 05\033[0m\n"
        read  H M
        if [ $H -ge 0 -a $H -le 23 -a $M -ge 0 -a $M -le 59 ];then
        printf "\033[1;32m $H時$M分\033[0m\n"
        else
        printf "\033[1;32m 請輸入正確的時間\033[0m\n"
        exit 1
    fi
        nu1=$(cat $apply.tomcat-catalina-out | grep -n $H:$M: | awk 'NR==1{print}' | awk -F ":" '{print $1}')
        nu2=$[$nu1+500]
        cat $apply.tomcat-catalina-out | awk 'NR>nu1&&NR<nu2' nu1="$nu1" nu2="$nu2"
}

function print_tail {
        m=$(date -d today +"%m")
        d=$(date -d today +"%d")
        cd /opt/logs/2016.$m.$d
        tail -200f $apply.tomcat-catalina-out
}

##############腳本執行部分#################
applys="actprovider act app awardsgrant bi b callback credit currentbao fixedbao growthpoint mq pay pyramid rest rmi sms task wap web"

[ -z "$1" ] && print_error
while getopts abc opt;do
        case "$opt" in
                a) a=true;;
                b) b=true;;
                c) c=true;;
                *) print_error;;
        esac
done
[ -z "$a$b$c" ] && print_error
[ "$a" = true ] && print_date && print_apply && print_key
[ "$b" = true ] && print_date && print_apply && print_time
[ "$c" = true ] && print_apply && print_tail
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 尋找一種易于理解的一致性算法(擴展版) 摘要 Raft 是一種為了管理復制日志的一致性算法。它提供了和 Paxos...
    枝葉君閱讀 2,678評論 0 15
  • 養貓一時,貓奴一世 侍奉好喵主子是貓奴的首要任務之一 #尋覓視頻# 我們辦公室就有一位喵主子 簡稱瞌總大人 此貓仗...
    尋覓視頻閱讀 326評論 0 0
  • 若有一天,你誤打誤撞來到這里 一定會覺得,這座被遺忘的山峰,是神賦予的禮物 它洗去你俗世的塵埃,蕩滌你的每一個毛孔...
    IAMME_09b1閱讀 243評論 0 2
  • 大家一想到地中海風格的家居,一般是不是會想到這幾種設計元素:白灰泥墻、拱廊或拱門,海藍色的門窗。地中海風格的靈魂,...
    1fa8a0d17577閱讀 581評論 0 1