v-list-backup-host 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/bin/bash
  2. # info: list backup host
  3. # options: TYPE HOST [FORMAT]
  4. #
  5. # The function for obtaining the list of backup host parameters.
  6. #----------------------------------------------------------#
  7. # Variable&Function #
  8. #----------------------------------------------------------#
  9. # Argument definition
  10. type=$1
  11. format=${2-shell}
  12. # Includes
  13. source $VESTA/func/main.sh
  14. # JSON list function
  15. json_list() {
  16. echo '{'
  17. echo ' "'$type'": {
  18. "HOST": "'$HOST'",
  19. "USERNAME": "'$USERNAME'",
  20. "PORT": "'$PORT'",
  21. "TYPE": "'$type'",
  22. "BPATH": "'$BPATH'",
  23. "TIME": "'$TIME'",
  24. "DATE": "'$DATE'"
  25. }'
  26. echo '}'
  27. }
  28. # SHELL list function
  29. shell_list() {
  30. echo "HOST: $HOST"
  31. echo "USERNAME: $USERNAME"
  32. echo "PORT: $PORT"
  33. echo "TYPE: $type"
  34. echo "PATH: $BPATH"
  35. echo "TIME: $TIME"
  36. echo "DATE: $DATE"
  37. }
  38. # PLAIN list function
  39. plain_list() {
  40. echo -e "$HOST\t$USERNAME\t$PORT\t$type\t$BPATH\t$TIME\t$DATE"
  41. }
  42. # CSV list function
  43. csv_list() {
  44. echo "HOST,USERNAME,PORT,TYPE,PATH,TIME,DATE"
  45. echo "$HOST,$USERNAME,$PORT,$type,$BPATH,$TIME,$DATE"
  46. }
  47. # Type format validator
  48. is_type_format_valid() {
  49. exclude="[!|#|$|^|&|(|)|+|=|{|}|:|@|<|>|?|/|\|\"|'|;|%|\`| ]|\."
  50. if [[ "$1" =~ $exclude ]]; then
  51. check_result $E_INVALID "invalid type extention format :: $1"
  52. fi
  53. }
  54. #----------------------------------------------------------#
  55. # Verifications #
  56. #----------------------------------------------------------#
  57. check_args '1' "$#" 'TYPE [FORMAT]'
  58. is_type_format_valid "$type"
  59. #----------------------------------------------------------#
  60. # Action #
  61. #----------------------------------------------------------#
  62. # Checking backup config
  63. if [ ! -e "$VESTA/conf/$type.backup.conf" ]; then
  64. exit
  65. fi
  66. # Parsing backup config
  67. source "$VESTA/conf/$type.backup.conf"
  68. # Listing data
  69. case $format in
  70. json) json_list ;;
  71. plain) plain_list ;;
  72. csv) csv_list ;;
  73. shell) shell_list |column -t ;;
  74. esac
  75. #----------------------------------------------------------#
  76. # Vesta #
  77. #----------------------------------------------------------#
  78. exit