OpenVZ Dashboard
Недавно перешёл на OpenVZ 7. WEB-панель ставить не хотелось, а какой-то dashboard всё же нужен… У меня мало опыта в написании bash скриптов, но решил «по быстрому» что-то наваять… Вот что получилось…
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #/bin/bash # функция, предотвращающая участия строки заголовков таблицы в сортировке body() {     IFS= read -r header     printf '%s\n' "$header"     "$@" } df -h > df_tmp # свободное место на дисках виртуалок printf 'NAME\tHOSTNAME\tTMPL\tTYPE\tIP\tMEMORY\tSTATE\tOS\tSIZE\tUSED\tAVAIL\tAVAIL(%%)\n' >> tmp # заголовки таблицы array=(/vz/root/*/) # директории виртуалок for dir in "${array[@]}";  do  	bs=$(basename $dir) # ID виртуалки 	prlctl list -i "$bs" > ct_tmp 	sed -i '1D' ct_tmp 	sed -i '/^$/d' ct_tmp 	sed -i 's/[^.]*: //g' ct_tmp 	df=($(df -h | grep "$bs" | awk '{print $2,$3,$4,$5}')) 	mapfile -t line < ct_tmp 	ip=$(echo -r "${line[27]}" | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}/\b" | sed 's/\///g') 	memory=$(echo "${line[23]}" | grep -oE "\b[0-9]{1,4}Mb\b") 	printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "${line[2]}" "${line[36]}" "${line[7]}" "${line[4]}" "${ip}" "${memory}" "${line[5]}" "${line[6]}" "${df[0]}" "${df[1]}" "${df[2]}" "${df[3]}" >> tmp done cat tmp | column -t -s $'\t' | body sort -k3 -k5 rm -f tmp ct_tmp df_tmp | 
Скрипт в результате выводит что-то типа
| 1 2 3 4 5 6 7 8 9 | NAME            HOSTNAME              TMPL  TYPE  IP            MEMORY  STATE    OS       SIZE  USED  AVAIL  AVAIL(%) 102             openVPN.zk            no    CT    10.33.33.102  4096Mb  running  centos7  4,9G  759M  3,9G   17% 103             nginx-proxy.zk        no    CT    10.33.33.103  4096Mb  running  centos7  4,9G  998M  3,7G   22% 110             mysql-prod.zk         no    CT    10.33.33.110  8192Mb  running  centos7  15G   1,8G  13G    13% 112             postgresql.zk         no    CT    10.33.33.112  8192Mb  running  centos7  15G   836M  14G    6% 130             zeka-kiev-ua.zk       no    CT    10.33.33.130  4096Mb  running  centos7  4,9G  1,1G  3,6G   24% 131             real-english.zk       no    CT    10.33.33.131  8192Mb  running  centos7  15G   1,8G  13G    13% 140             php-7-1-nginx-fpm.zk  no    CT    10.33.33.140  8192Mb  running  centos7  15G   2,8G  12G    20% clean-template  clean-template.zk     yes   CT                  4096Mb  stopped  centos7                      | 





