就不得不用到內建的程式 data
下面來介紹幾個常常用到的功能……
date
輸出系統時間。
date +%s
輸出unix 時間
是從 utc 時間 1970/01/01 00:00:00 起~到現在的總秒數~
如果要自訂輸出時間的格式~
date +"%Y/%m/%d %Z %H:%M:%S"
2011/05/29 UTC 15:08:16
%Y 年
%m 月
%d 日
%Z 時區
%H 小時
%M 分鐘
%S 秒
後面的 小時、分、秒 都是大寫~ 這樣可以跟 月份的 m 做區分,蠻好記的。
如果忘記的話,可以直接 date --help
裡面會有更多細部的參數可以用~~~
再來是查詢時間的用法~~
date -d ' -2 day'
在 -d 這個 option後接上要查的時間
例子是兩天前,也可以有其它的間隔~~
像是 hour week year 都可以~~
打數字也OK,它的接受度出乎我的意料:p
date -d ' 2011/11/11 UTC 12:12:12'
Fri Nov 11 12:12:12 UTC 2011
這時候會想說為什麼要打數字…? 因為,它可以用在時間格式的轉換~
在做一些監控的 service 時,直接把時間統一指定成 UTC 時間的 unix 格式是很方便的!
可以開個變數 ~
WhatTime=`date -u +%s`
echo $WhatTime
( -u 是指定時區為 UTC )
那如果是從其它軟體、系統下載入的時間,也可以寫個 bash 呼叫 date來做格式轉換~
date -d ' 2011/11/11 UTC 12:12:12' +%s
1321013532
只要再後面補個 + 再打上自己想要的輸出格式~~
date 常用的功能也介紹差不多了~~
下面要不忘提醒一下,校正時間相關的指令
在爽爽的使用這些系統時間時,如果沒有把時間同步做好的話
收集到的數據可信度就會下降啦!!
對時用的軟體 ntpdate
可以直接手動執行校時動作
ntpdate <校時網址>
台灣的有下面幾個可以用~~~ (在 時間標準局 網站上可以查得到)
tock.stdtime.gov.tw
watch.stdtime.gov.tw
time.stdtime.gov.tw
clock.stdtime.gov.tw
tick.stdtime.gov.tw
之後,可以把對時動作寫進 crontab 裡,讓系統每天自動幫你對時~~
vim /etc/crontab
加入下面這一行
10 5 * * * root /usr/sbin/ntpdate tock.stdtime.gov.tw &> /dev/null
( 對時的時間是 每天的 5 點10 分,如果要改成早上四點可以寫成…
10 4 * * * root /usr/sbin/ntpdate tock.stdtime.gov.tw &> /dev/null
下面補個快速查詢表^ ^
date date +%s date +"%Y/%m/%d %Z %H:%M:%S" 2011/05/29 UTC 15:08:16 %Y 年 %m 月 %d 日 %Z 時區 %H 小時 %M 分鐘 %S 秒 #hour week year date -d ' -2 day' date -d ' 2011/11/11 UTC 12:12:12' Fri Nov 11 12:12:12 UTC 2011 WhatTime=`date -u +%s` echo $WhatTime ( -u 是指定時區為 UTC ) date -d ' 2011/11/11 UTC 12:12:12' +%s 1321013532 只要再後面補個 + 再打上自己想要的輸出格式~~ ntpdate <校時網址>