moving projects
This commit is contained in:
75
anduril/csc_vm_status_query
Executable file
75
anduril/csc_vm_status_query
Executable file
@@ -0,0 +1,75 @@
|
||||
#!/bin/bash
|
||||
|
||||
help='CSC Virtual Machine Load Status
|
||||
|
||||
-s Short (default)
|
||||
-l Long
|
||||
-c Do not pretty print short output
|
||||
-b [l|m] return the name of the node with l=least load, m=least used memory
|
||||
-u [username] return a list of nodes with processes of given user
|
||||
|
||||
L=Load, M=used memory + cached / total, U=users with processes
|
||||
'
|
||||
|
||||
mode="short"
|
||||
postprocess=" | ncsv -c -i' ' -d' ' "
|
||||
while getopts "clshu:b:" OPTS;
|
||||
do case ${OPTS} in
|
||||
s)
|
||||
mode="short"
|
||||
;;
|
||||
l)
|
||||
mode="long"
|
||||
;;
|
||||
c)
|
||||
postprocess=""
|
||||
;;
|
||||
b)
|
||||
mode="best"
|
||||
[ "$OPTARG" = "l" ] && bestcol=3
|
||||
[ "$OPTARG" = "m" ] && bestcol=6
|
||||
if [ -z "$bestcol" ]
|
||||
then echo "Argument to -b not recognized"
|
||||
echo "$help"
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
u)
|
||||
mode="user"
|
||||
username=$OPTARG
|
||||
[ -z "$username" ] && exit
|
||||
;;
|
||||
h)
|
||||
echo "$help"
|
||||
exit
|
||||
;;
|
||||
?)
|
||||
echo "$help"
|
||||
exit
|
||||
;;
|
||||
|
||||
esac
|
||||
done
|
||||
if [ "$OPTIND" -gt 1 ]
|
||||
then shift $(( $OPTIND-1 ))
|
||||
fi
|
||||
|
||||
status_folder="/mnt/csc-cloud/vm_state"
|
||||
if [ ! -d "$status_folder" ]
|
||||
then echo $status_folder not mounted
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ "$mode" = "short" ]
|
||||
then eval "cat $status_folder/*short $postprocess"
|
||||
fi
|
||||
if [ "$mode" = "long" ]
|
||||
then eval "cat $status_folder/*long"
|
||||
fi
|
||||
if [ "$mode" = "best" ]
|
||||
then eval "cat $status_folder/*short" | sed 's,[|/:\+], ,g' | sort -k $bestcol -n | cut -d" " -f2 | head -n 1
|
||||
fi
|
||||
if [ "$mode" = "user" ]
|
||||
then eval "grep $username $status_folder/*long" | sed -e 's,.*/,,' -e 's,\..*, ,' | tr -d [:cntrl:]
|
||||
echo ""
|
||||
fi
|
||||
Reference in New Issue
Block a user