一個用來打印log的腳本

現在在公司裏做Tracking的工作,在開發環境下,Tracking的log文件保存在服務器的/mezi/sites/apache/logs下,然後又根據網站的不同有着下面這樣的格式:

{site_name}_{machine_name}_YYYY_MM_DD_HH_xx.tracking.log

從文件格式來看,是每小時生成一個log文件,但是有些站點會每10分鐘生成一個log文件,而服務器上又是UTC時間,但是在我的機器上卻是北京時間,這樣就很不方便看到最新的log。每次要看log,還得腦子裏計算一下時差來確認最新的log文件名,實在太不方便了,於是就寫了個腳本來看最新的log文件內容。

#!/bin/bash

log_dir="/mezi/sites/apache/logs" # tracking log dir
machine_name=`hostname -s` # get short name of this machine

if [ -n "$1" ]; then
    site_path="/mezi/sites/${1}" # site located in /mezi/sites/$site_name
    if [ ! -e "$site_path" ]; then
        echo "There is no such site on this machine!"
        exit 1
    fi

    #echo "OK, we got the site. Let's tail tracking log for it."
    date=`date +%Y_%m_%d`
    log_file_format="${log_dir}/${1}_${machine_name}_${date}*" #get tracking log file format
    #echo "$log_file_format"

    log_target=`ls ${log_file_format} 2>/dev/null | sort -rn | head -1`
    if [ -n "$log_target" ] && [ -e "$log_target" ]; then
        echo "The latest log file is $log_target"
        tail -f "$log_target"
    else
        echo "There is no such log file."
    fi
else
    echo "No site name provided."
fi

使用這條命令,就用./print_latest_tracking_log.sh {site_name}即可,如果當前機器上沒有站點,腳本會提示錯誤信息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章