date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
這個命令要分成兩個來看,首先是取出了/proc/uptime文件中的第一個數字,也就是當前機器已運行的時間,假設為$X 秒
date -d "$X second ago" 意思是取 X秒前的時間,並按照"%Y-%m-%d%H:%M:%S"的形式輸出。這是date命令的用法
因此, second ago 不是awk中出現的,而是date命令的一種表述用法,用於計算出若干秒前的時間,
整個命令的最終作用就是計算出機器最近一次啟動的時間
second:秒
ago:之前
有關/proc/uptime這個文件里兩個參數所代表的意義:
[root@app ~]#cat /proc/uptime
3387048.81 3310821.00
第一個參數是代表從系統啟動到現在的時間(以秒為單位):
3387048.81秒 = 39.20195381944444天,說明這台服務器已連續開機39.20195381944444天
第二個參數是代表系統空閑的時間(以秒為單位):
3310821.00秒 = 38.3196875天,說明這台機器從開機到現在一共只有38天左右沒事干。
計算一下空閑率:
3310821.00 / 3387048.81 = 0.9774943278718207
也就是說:它的空閑率是97%
空閑率高低並不意味着,它做的工作很多,還有跟服務器的配置和性能有很大的關系,這台服務器有這么低的空閑率,或者說這么高的利用率,是因為它的配置比較低。
空閑率跟服務器的配置有很大的關系,服務器的性能越好,配置越高,它處理的速度越快,配置高的服務器處理的時間要小於配置低的服務器。
從空閑時間,你就可以判斷你的服務器負載是否過大,看一下是不是有導常情況發生,如果空閑時間很小,說明你的服務器已經在滿負荷運行,然后決定是不是需要升級你的服務器。