v-list-database-hosts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #!/bin/bash
  2. # info: list database hosts
  3. # options: [FORMAT]
  4. #
  5. # The function for obtaining the list of all configured database hosts.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. source $VESTA/conf/vesta.conf
  14. # JSON list function
  15. json_list() {
  16. IFS=$'\n'
  17. i=1
  18. objects=0
  19. for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
  20. if [ -e "$VESTA/conf/$type.conf" ]; then
  21. db_hosts=$(grep HOST $VESTA/conf/$type.conf |wc -l)
  22. objects=$((objects + db_hosts))
  23. fi
  24. done
  25. echo "["
  26. for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
  27. if [ -e "$VESTA/conf/$type.conf" ]; then
  28. for str in $(cat $VESTA/conf/$type.conf); do
  29. eval $str
  30. echo -n ' {
  31. "HOST": "'$HOST'",
  32. "TYPE": "'$type'",
  33. "CHARSETS": "'$CHARSETS'",
  34. "MAX_DB": "'$MAX_DB'",
  35. "U_SYS_USERS": "'$U_SYS_USERS'",
  36. "U_DB_BASES": "'$U_DB_BASES'",
  37. "TPL": "'$TPL'",
  38. "SUSPENDED": "'$SUSPENDED'",
  39. "TIME": "'$TIME'",
  40. "DATE": "'$DATE'"
  41. }'
  42. if [ "$i" -lt "$objects" ]; then
  43. echo ','
  44. else
  45. echo
  46. fi
  47. ((i++))
  48. done
  49. fi
  50. done
  51. echo ']'
  52. }
  53. # SHELL list function
  54. shell_list() {
  55. IFS=$'\n'
  56. echo "HOST TYPE MAX_DB DB_USED SPND TIME DATE"
  57. echo "---- ---- ------ ------- ---- ---- ----"
  58. for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
  59. if [ -e "$VESTA/conf/$type.conf" ]; then
  60. for str in $(cat $VESTA/conf/$type.conf); do
  61. eval $str
  62. echo "$HOST $type $MAX_DB $U_DB_BASES $SUSPENDED $TIME $DATE"
  63. done
  64. fi
  65. done
  66. }
  67. # PLAIN list function
  68. plain_list() {
  69. IFS=$'\n'
  70. for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
  71. if [ -e "$VESTA/conf/$type.conf" ]; then
  72. for str in $(cat $VESTA/conf/$type.conf); do
  73. eval $str
  74. echo -ne "$HOST\t$type\t$CHARSETS\t$MAX_DB\t$U_SYS_USERS\t"
  75. echo -e "$U_DB_BASES\t$TPL\t$SUSPENDED\t$TIME\t$DATE"
  76. done
  77. fi
  78. done
  79. }
  80. # CSV list function
  81. csv_list() {
  82. IFS=$'\n'
  83. echo -n "HOST,TYPE,CHARSETS,MAX_DB,U_SYS_USERS,"
  84. echo "U_DB_BASES,TPL,SUSPENDED,TIME,DATE"
  85. for type in $(echo $DB_SYSTEM |sed -e 's/,/\n/'); do
  86. if [ -e "$VESTA/conf/$type.conf" ]; then
  87. for str in $(cat $VESTA/conf/$type.conf); do
  88. eval $str
  89. echo -n "$HOST,$type,\"$CHARSETS\",$MAX_DB,\"$U_SYS_USERS\","
  90. echo "$U_DB_BASES,$TPL,$SUSPENDED,$TIME,$DATE"
  91. done
  92. fi
  93. done
  94. }
  95. # Type format validator
  96. is_type_format_valid() {
  97. exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
  98. if [[ "$1" =~ $exclude ]]; then
  99. check_result $E_INVALID "invalid type extention format :: $1"
  100. fi
  101. }
  102. #----------------------------------------------------------#
  103. # Verifications #
  104. #----------------------------------------------------------#
  105. #----------------------------------------------------------#
  106. # Action #
  107. #----------------------------------------------------------#
  108. # Listing data
  109. case $format in
  110. json) json_list ;;
  111. plain) plain_list ;;
  112. csv) csv_list ;;
  113. shell) shell_list |column -t ;;
  114. esac
  115. #----------------------------------------------------------#
  116. # Vesta #
  117. #----------------------------------------------------------#
  118. exit