【问题标题】:UPTIME sorting of arrays in BASHBASH中数组的正常运行时间排序
【发布时间】:2013-10-05 20:51:16
【问题描述】:

我有一个简单的脚本来计算/获取 xen 上每个 VM 的每个正常运行时间(使用:xm uptime)

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. 有时虚拟机的正常运行时间仅包含小时:分钟:秒(通常它显示天小时:分钟:秒,所以上面的脚本对遇到的错误给出了错误)>> *60:语法错误:预期操作数(错误标记为“*60”)
  4. 我怎么知道谁刚刚重新启动(0:0:0 或 0:0:5)

谢谢

【问题讨论】:

    标签: bash sorting uptime


    【解决方案1】:

    您可以将输出(例如以逗号分隔)传递给“排序”命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多