shell腳本在服務器上通常用來控制項目調起過程,獲取數據等,本文將總結項目中常用的自定義函數,如計算每項流程的運行時間、檢查數據是否更新等。
項目中要有寫conf.env,client.env和func.env的習慣。其中,conf.env用來寫項目中常用的數據的路徑,client.env用來寫項目中用到的各種客戶端的路徑,比如python,hadoop等,func.env用來寫項目中常用的函數,比如檢查任務運行結果,失敗發送郵件、短線提醒,刪除舊的日誌、數據等。
1、計算運行時長的函數
function calc_time() {
START=$1
END=$2
TSPEND=`expr ${END} - ${START}`
HSPEND=`expr $TSPEND / 3600`
MSPEND=`expr $TSPEND % 3600`
MSPEND=`expr $MSPEND / 60`
echo "耗時: "$HSPEND"h "$MSPEND"m"
}
調用
START_TIME=`date +%s`
sh -x run.sh >log/run.log 2>&1
t1=${START_TIME}
t2=`date +%s`
calc_time $t1 $t2