Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BASH中数组的正常运行时间排序_Bash_Sorting_Uptime - Fatal编程技术网

BASH中数组的正常运行时间排序

BASH中数组的正常运行时间排序,bash,sorting,uptime,Bash,Sorting,Uptime,我有一个简单的脚本来计算/获取xen上每个VM的每个正常运行时间(使用:xm uptime) 但问题是: 如何对数组中的数据进行排序 我如何知道最多或更少的虚拟机正常运行时间 有时虚拟机的正常运行时间只包括小时:分钟:秒(通常显示天小时:分钟:秒,因此上面的脚本为遇到的情况提供了一个错误)>>*60:语法错误:预期的操作数(错误标记为“*60”) 我如何知道谁刚刚重新启动(0:0:0或0:0:5) 多亏了您可以通过管道将输出(例如以逗号分隔)发送到“sort”命令 xm uptime |grep

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

但问题是:

  • 如何对数组中的数据进行排序
  • 我如何知道最多或更少的虚拟机正常运行时间
  • 有时虚拟机的正常运行时间只包括小时:分钟:秒(通常显示天小时:分钟:秒,因此上面的脚本为遇到的情况提供了一个错误)>>*60:语法错误:预期的操作数(错误标记为“*60”)
  • 我如何知道谁刚刚重新启动(0:0:0或0:0:5)

  • 多亏了

    您可以通过管道将输出(例如以逗号分隔)发送到“sort”命令

    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