shell腳本獲取當前時間
㈠ linux下用shell獲取指定文件的最後修改時間並與系統時間比對,如果相差時間超過3分鍾則執行另一個腳本
使用date命令加上合適的時間格式化字元串(+%s),會顯示當前時間(或-d參數指定的時間)與1970-01-01 00:00:00相差的秒數(詳細可以參考date的man手冊)
所以基本想法就是使用date命令分別獲取當前時間與文件修改時間的秒數,然後看這2個秒數之間是否有相差180秒以上。
獲取當前時間比較簡單,直接date +%s就ok了
下面看看如何獲取文件時間
使用stat 命令後面跟一個文件名可以獲取文件的狀態,包括文件修改時間。其中文件修改時間會單獨一行顯示,格式如下:Modify: 2013-02-21 17:58:05.404876407 +0800 (具體的精度可能系統不同略微有些差別,但大致格式是這樣)
所以我們可以stat myfilename | grep Modify來獲取文件的修改時間的信息,然後通過awk分別獲取時間的日期和時間段
stat myfilename | grep Modify | awk '{print $2}' #這句獲取了日期段,即上面例子裡面的2013-02-21
stat myfilename | grep Modify | awk '{split($3,var,".");print var[1]}' #這句獲取了時間段,即上面例子裡面的17:58:05,具體關於awk的使用可以參考awk的使用手冊
那麼現在可以獲取文件修改時間與1970-01-01 00:00:00相差的描述了,就是date -d "$file_date $file_time" +%s
那麼這個時間與當前時間想減的結果與180相比就可以知道是否滿足條件了,滿足條件的話就可以執行相應的命令。
參考代碼如下:
current_datetime=`date +%s`
filedate=`stat tt.txt | grep Modify | awk '{print $2}'`
filetime=`stat tt.txt | grep Modify | awk '{split($3,var,".");print var[1]}'`
file_datetime=`date -d "$filedate $filetime" +%s
timedelta=`expr $current_datetime - $file_datetime`
if [ "$timedelta" -gt "180" ];then
echo "match condition"
fi
㈡ linux中shell腳本在獲取當前系統時間減去一個小時怎麼寫
`date -d "-1 hours" +\%Y\%m\%d`
注意寫在腳本裡面的時候,那個百分號要轉義,不然的會出錯
㈢ shell腳本計算時間
TIME_INPUT=`date -d "00:00" +%s`
通過時間戳來計算
nowtime=`date +%s`
shijiancha=`expr $nowtime - $TIME_INPUT`
if [ $shijiancha -gt 180 ];then
echo 3分鍾前
else
if [ $shijiancha -lt -180 ];then
echo 3分鍾後
fi
fi
㈣ Linux:shell腳本中如何獲取當前時間年月日、時分秒
自己看下man page
man date
㈤ shell腳本中時間戳問題
獲取時間戳:date +%s
精確到毫秒:echo $[$(date +%s%N)/1000000]
from:網頁鏈接
㈥ shell腳本關於時間的判斷
這個用linux的date命令就可以實現,主要是判斷當前的小時是否位於0晨就可以。代碼大致如下:
#!/bin/sh
currentHour=$(date +%H)
if [ $currentHour -eq 00 ]
then
currentTime=$(date +%s);
tmp=$(($currentTime-3600));
echo $(date -d "@$tmp" +%Y-%m-%d);
else
echo $(date +%Y-%m-%d);
fi
㈦ 在shell中怎麼獲取當前日期和時間
獲得當天的日期:[root@master~]#date+%Y-%m-%d
有時候需要使用今天之前或者往後的日期,這時可以使用date的 -d參數。
獲取明天的日期:date-dnext-day+%Y%m%d
獲取昨天的日期:date-dlast-day+%Y%m%d
獲取上個月的年和月:date-dlast-month+%Y%m
獲取下個月的年和月:date -d next-month +%Y%m
獲取明年的年份:date -d next-year +%Y
(7)shell腳本獲取當前時間擴展閱讀
時間域參數:
時間域參數用於格式化輸出日期,相關時間域參數如下:
% H 小時(00…23)
% I 小時(01…12)
% k 小時(0…23)
% l 小時(1…12)
% M 分(00…59)
% p 顯示出AM或PM
% r 時間(hh:mm:ss AM或PM),12小時
% s 從1970年1月1日00:00:00到目前經歷的秒數
% S 秒(00…59)