v-list-sys-ips 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/bin/bash
  2. # info: list system ips
  3. # options: [FORMAT]
  4. #
  5. # The function for obtaining the list of system ip adresses.
  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. echo '{'
  16. ip_count=$(ls $VESTA/data/ips/ |wc -l)
  17. i=1
  18. while read IP; do
  19. source $VESTA/data/ips/$IP
  20. echo -n ' "'$IP'": {
  21. "OWNER": "'$OWNER'",
  22. "STATUS": "'$STATUS'",
  23. "NAME": "'$NAME'",
  24. "U_SYS_USERS": "'$U_SYS_USERS'",
  25. "U_WEB_DOMAINS": "'$U_WEB_DOMAINS'",
  26. "INTERFACE": "'$INTERFACE'",
  27. "NETMASK": "'$NETMASK'",
  28. "NAT": "'$NAT'",
  29. "TIME": "'$TIME'",
  30. "DATE": "'$DATE'"
  31. }'
  32. if [ "$i" -lt "$ip_count" ]; then
  33. echo ','
  34. else
  35. echo
  36. fi
  37. ((i++))
  38. done < <(ls $VESTA/data/ips/)
  39. echo '}'
  40. }
  41. # SHELL list function
  42. shell_list() {
  43. echo "IP MASK NAT STATUS WEB DATE"
  44. echo "-- ---- --- ------ --- ----"
  45. while read IP; do
  46. source $VESTA/data/ips/$IP
  47. if [ -z "$NAT" ]; then
  48. NAT='no'
  49. fi
  50. echo "$IP $NETMASK $NAT $STATUS $U_WEB_DOMAINS $DATE"
  51. done < <(ls $VESTA/data/ips/)
  52. }
  53. # PLAIN list function
  54. plain_list() {
  55. while read IP; do
  56. source $VESTA/data/ips/$IP
  57. echo -ne "$IP\t$OWNER\t$STATUS\t$NAME\t$U_SYS_USERS\t$U_WEB_DOMAINS\t"
  58. echo -e "$INTERFACE\t$NETMASK\t$NAT\t$TIME\t$DATE"
  59. done < <(ls $VESTA/data/ips/)
  60. }
  61. # CSV list function
  62. csv_list() {
  63. echo -n "IP,OWNER,STATUS,NAME,U_SYS_USERS,U_WEB_DOMAINS,INTERFACE"
  64. echo "NETMASK,NAT,TIME,DATE"
  65. while read IP; do
  66. source $VESTA/data/ips/$IP
  67. echo -n "$IP,$OWNER,$STATUS,$NAME,\"$U_SYS_USERS\",$U_WEB_DOMAINS,"
  68. echo "$INTERFACE, $NETMASK,$NAT,$TIME,$DATE"
  69. done < <(ls $VESTA/data/ips/)
  70. }
  71. #----------------------------------------------------------#
  72. # Action #
  73. #----------------------------------------------------------#
  74. # Listing data
  75. case $format in
  76. json) json_list ;;
  77. plain) plain_list ;;
  78. csv) csv_list ;;
  79. shell) shell_list |column -t ;;
  80. esac
  81. #----------------------------------------------------------#
  82. # Vesta #
  83. #----------------------------------------------------------#
  84. exit