2013-11-27 65 views
1

我運行了一個執行週期很長的項目構建命令。當我去睡覺時我運行它。是否有一些Linux系統機制在bash中記錄命令持續時間?我可以啓動和停止執行的Linux shell命令的時間戳嗎?

+1

您可以更具體地瞭解您正在運行的環境嗎?如果你有一個方便的shell,我會認爲在'{date; DOIT;日期; }'無論你的構建命令是做什麼的。 – jthill

+0

我有三個命令用_sudo_執行。每個命令都有很長的執行時間,所以對於其他所有的命令都要重新輸入密碼,我應該再次輸入密碼。我想避免這種情況。 – MobileDream

回答

2

這是time您正在查找?只是在前面加上time命令要執行的命令之前:

time build_cmd 

輸出的樣子:

real 0m0.153s 
user 0m0.004s 
sys  0m0.000s 

其中real是總時間的命令需要太多運行,user的時間量花在用戶空間代碼和sys花在內核代碼上的時間。

+0

對於那些使用MacOS的人來說,這個命令也可以在MacOS中使用。 – Halil

+0

當然是,因爲它是一個bash內建的 – hek2mgl

1

如果您想要看中,可以使用Jenkins來構建。它可以構建任何類型的項目,而不僅僅是Java項目。其中一個插件是Timestamper,它會爲構建的每個執行線添加一個時間戳。另外,詹金斯會一直告訴你(帶或不帶這個插件)構建需要多長時間。

即使您不使用CI服務器進行持續集成,使用CI服務器進行構建也有很多好處。 (即,你要麼手動產生構建,要麼在一天中的某個時間)。

您還可以通過hek2mgl使用time命令指出的那樣,或者寫一個小shell腳本之前和構建完成後打印出一個時間戳:

date 
build_cmd 
date 
1

Jenkins建議,由@DavidV。是一個非常完整的自動化和管理構建過程的工具,而time命令在爲build命令添加前綴時,會精確地告訴您構建過程需要多長時間,正如@ hek2mgl所提出的那樣。

但是假設你不想安裝詹金斯,你忘了輸入time,你已經開始你的命令,你可以使用下面的技巧之一:

  • 看的創建時間第一個和最後一個目標,或者
  • 也可以在building命令運行的同時,在構建過程的輸出中盲目輸入date命令。當進程終止時,它將被緩衝並執行。結合使用$HISTTIMEFORMAT,你對這個過程花了多少錢有個很好的想法。
相關問題