shell之獲取時間(精確到毫秒)
需求:通過shell獲取資料庫當前時間,並計算從開啟資料庫連線--查詢--關閉資料庫連線所耗費的時間(精確到毫秒)
步驟:
1、獲取時間(獲取時間)
注意:
1:連線資料庫的最後關閉時必須頂格寫否則報錯
2:shell無法直接獲取精確到毫秒的時間,需要通過計算獲取
方法/步驟
獲取時間(獲取時間)
[[email protected] zxx_shell]$ cat 3-time.sh
#!/bin/bash
var= #宣告全域性變數
function getTiming()
{
exec_start=$1
exec_end=$2
exec_start_s=`echo $exec_start cut -d '.' -f 1` #獲取開始時間的秒
exec_start_ns=`echo $exec_start cut -d '.' -f 2` #獲取開始時間的納秒
exec_end_s=`echo $exec_end cut -d '.' -f 1` #獲取結束時間的秒
exec_end_ns=`echo $exec_end cut -d '.' -f 2` #獲取結束時間的納秒
exec_time_ms=$[$[$[ 10#$exec_end_s - 10#$exec_start_s ] * 1000] + $[$[10#$exec_end_ns / 1000000] - $[10#$exec_start_ns / 1000000] ] ]
nowdate=`date +%Y%m%d-%T`
echo "--------$nowdate-------->":$exec_time_ms
}
date= #宣告全域性變數
function importTargetData()
{
exec_start=`date +%s.%N` #獲取時間格式:秒.納秒
sql="select sysdate from dual;"
date=`sqlplus -s zxx/[email protected] <
set heading off
set termout off
set feedback off
$sql
quit;
EOF` #一定要頂格寫
exec_end=`date +%s.%N`
var=$(getTiming $exec_start $exec_end)
}
importTargetData
echo $var
echo $date
[[email protected] zxx_shell]$ ./3-time.sh
--------20150805-15:26:19-------->:75
05-AUG-15