簡體   English   中英

BASH中的UPTIME數組排序

[英]UPTIME sorting of arrays in BASH

我有一個簡單的腳本來計算/獲取xen上每個VM的每個正常運行時間(使用:xm正常運行時間)

xm uptime |grep vm |awk '{print $1}' > /uptime.txt
IPS="/uptime.txt"
VMDB=$(grep -Ev "^#" $IPS)
for i in $VMDB
do
        days=$(xm uptime |grep $i |awk '{print $3}')
        hrs=$(xm uptime |grep $i |awk '{print $5}' | sed 's/[:,]/ /g' | awk '{print $1}')
        mins=$(xm uptime |grep $i |awk '{print $5}' | sed 's/[:,]/ /g' | awk '{print $2}')
        uptimesecs=$(($mins*60))
        uptimesecs=$(($hrs*3600+$uptimesecs))
        uptimesecs=$(($days*86400+$uptimesecs))
        echo "$uptimesecs seconds uptime for $i"
done

但問題是:

  1. 我如何排序數組中的數據
  2. 我怎么知道最多或更少的虛擬機正常運行時間
  3. 有時,VM的正常運行時間僅由hours:minutes:seconds(通常顯示天hours:minutes:seconds,因此上述腳本為遇到的錯誤提供了錯誤)>> * 60:語法錯誤:預期的操作數(錯誤標記為“ * 60“)
  4. 我怎么知道誰剛剛重啟(0:0:0或0:0:5)

謝謝

您可以將輸出(例如以逗號分隔)通過管道傳遞給“ sort”命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM