2016-01-24 19 views
2

我想以後修改系統時間爲兩天,但我只是覺得,我可以在Solaris中date命令的時間設定爲一個特定的時間:如何在Solaris中使用shell腳本將當前時間設置爲2天后?

#date mmddhhmmYY 

,但不能對當前加2天時間。使用shell命令執行此任務有沒有簡單的方法?如果你在linux中知道類似的東西,也請與我分享一下。

+0

不知道以下命令只有多少是POSIX/Linux。但是,這個命令是否工作? '日期+%m%d%H%M%Y'。如果這可行,那麼你可以寫下如下內容:'date $(date +%m%d%H%M%Y)'或'date \'date +%m%d%H%M%Y''。在linux中,你也可以這樣做:'date -d「now + 2 days」'如果需要的話,不要忘記用root帳戶運行它。 – yftse

+2

@yftse這是如何添加2天的? – Gavriel

+0

您需要將當前日期轉換爲時間戳,然後將2 * 86400添加到時間戳,然後將其轉換回mmddhhmmYY格式。由於我無法訪問Solaris,因此我將其餘部分留給您,但是man date應該可以幫助您轉換 – Gavriel

回答

5

Solaris date支持逐漸調整時間的語法。這可能是你最好的選擇。

date -a $((48 * 60 * 60 * 60)) 

應該最終更新您的日期提前兩天。這是設置系統時間的最好方法,因爲它會逐漸更新,而不是突然跳躍(這可能會導致一堆正在運行的程序)。除了這個,你可以寫出一個很好的腳本,它知道一個月中的日子和閏年,並自己做計算。如果你非常懶惰(像我)和精確度和競爭條件不打擾你那麼多(比如我,回答問題的StackOverflow),你可以只是做一個黑客就像這樣:

#!/bin/sh 

now=$(date +%H%M.%S) # current time 
date 2359.59 # Set time to 11:59:59pm 
sleep 1 # Wait a second so the day rolls over 
date 2359.59 # Set time to 11:59:59pm 
sleep 1 # Wait a second so the day rolls over 
date "$now" # Set time back to what it was, but in the new day 
date -a 2 # Gradually add two seconds back to the clock 

測試運行a tnarik/solaris10-minimal Vagrant框:

# ./adddaystodate 
The current date is now Monday, 25 January 2016 00:46:59 GMT 
Monday, 25 January 2016 23:59:59 GMT 
Tuesday, 26 January 2016 23:59:59 GMT 
Wednesday, 27 January 2016 00:46:59 GMT 
The current date is now Wednesday, 27 January 2016 00:46:59 GMT 
相關問題