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