我正試圖在Linux服務器上查找進程的運行時間。我使用etime
來實現這一點。下面是我使用以秒爲單位的運行時間在linux中的進程
ps -eo etime,args | grep "process"|awk '{print $1}'
樣本輸出這個
28-08:42:13
然後我做了以下將此轉換爲秒,併發送自己郵件的代碼時,運行時間少於30 mins(1800 secs)
ps -eo etime,args | grep "process"|awk '{print $1}'|awk -F'[-: ]+' '/:/ {t=$2+60*$1; print t}'
我看到的問題是,當轉換爲秒,它從運行時間花費$ 2(秒)和$ 1(分鐘),併發送郵件,即使pr已經達到了28-08:42:13
。 有沒有更好的方式將運行時轉換爲秒?在運行時間小於1小時的情況下,對第一個輸出使用$ 3和$ 4不起作用。它正在拾取垃圾值並返回與實際運行時間不同的值。 請幫忙。
爲什麼不分析整個時間並獲得unix時間戳?請參閱http://stackoverflow.com/questions/1842634/parse-date-in-bash – ypnos 2014-12-10 21:56:49