v-list-remote-dns-hosts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/bin/bash
  2. # info: list remote dns host
  3. # options: [FORMAT]
  4. #
  5. # The function for obtaining the list of remote dns host.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. format=${1-shell}
  11. # Includes
  12. source $VESTA/func/main.sh
  13. # JSON list function
  14. json_list() {
  15. IFS=$'\n'
  16. i=1
  17. objects=$(grep HOST $VESTA/conf/dns-cluster.conf |wc -l)
  18. echo "{"
  19. while read str; do
  20. eval $str
  21. echo -n ' "'$HOST'": {
  22. "PORT": "'$PORT'",
  23. "TYPE": "'$TYPE'",
  24. "USER": "'$USER'",
  25. "DNS_USER": "'$DNS_USER'",
  26. "SUSPENDED": "'$SUSPENDED'",
  27. "TIME": "'$TIME'",
  28. "DATE": "'$DATE'"
  29. }'
  30. if [ "$i" -lt "$objects" ]; then
  31. echo ','
  32. else
  33. echo
  34. fi
  35. ((i++))
  36. done < <(cat $VESTA/conf/dns-cluster.conf)
  37. echo '}'
  38. }
  39. # SHELL list function
  40. shell_list() {
  41. IFS=$'\n'
  42. echo "HOST PORT TYPE USER DNS_USER SPND DATE"
  43. echo "---- ---- ---- ---- -------- ---- ----"
  44. while read str; do
  45. eval $str
  46. echo "$HOST $PORT $TYPE $USER $DNS_USER $SUSPENDED $DATE"
  47. done < <(cat $VESTA/conf/dns-cluster.conf)
  48. }
  49. # PLAIN list function
  50. plain_list() {
  51. IFS=$'\n'
  52. while read str; do
  53. eval $str
  54. echo -ne "$HOST\t$PORT\t$TYPE\t$USER\t$DNS_USER\t"
  55. echo -e "$SUSPENDED\t$TIME\t$DATE"
  56. done < <(cat $VESTA/conf/dns-cluster.conf)
  57. }
  58. # CSV list function
  59. csv_list() {
  60. IFS=$'\n'
  61. echo "HOST,PORT,TYPE,USER,DNS_USER,SUSPENDED,TIME,DATE"
  62. while read str; do
  63. eval $str
  64. echo "$HOST,$PORT,$TYPE,$USER,$DNS_USER,$SUSPENDED,$TIME,$DATE"
  65. done < <(cat $VESTA/conf/dns-cluster.conf)
  66. }
  67. #----------------------------------------------------------#
  68. # Verifications #
  69. #----------------------------------------------------------#
  70. if [ ! -e "$VESTA/conf/dns-cluster.conf" ]; then
  71. exit
  72. fi
  73. #----------------------------------------------------------#
  74. # Action #
  75. #----------------------------------------------------------#
  76. # Listing data
  77. case $format in
  78. json) json_list ;;
  79. plain) plain_list ;;
  80. csv) csv_list ;;
  81. shell) shell_list |column -t ;;
  82. esac
  83. #----------------------------------------------------------#
  84. # Vesta #
  85. #----------------------------------------------------------#
  86. exit