Browse Source

V1.9.3 Fix for ip address as hostname, more robust for special hostname

erdo_king 4 years ago
parent
commit
3545b270e4
2 changed files with 67 additions and 5 deletions
  1. 48 0
      projects/DMZ.lst
  2. 19 5
      sssh.sh

+ 48 - 0
projects/DMZ.lst

@@ -0,0 +1,48 @@
+HOST wordpress-ichalsroot
+    DESC wordpress ichalsroot.de
+    GROUP PROD
+
+HOST guacamole 
+    DESC guacamole
+    GROUP PROD
+
+HOST ulogger
+    DESC ulogger Server
+    GROUP PROD
+
+HOST crowbar
+    DESC crowbar Proxy
+
+HOST aptcacherng
+    DESC Apt-Cacher-ng
+
+HOST 172.16.10.17
+    DESC PsychoStats
+
+HOST 172.16.10.18 
+    DESC Bitcoin
+
+HOST esniper
+    DESC esniper
+
+HOST roundcubemail
+    DESC roundcubemail
+
+HOST mailer
+    DESC New Mail Server
+
+HOST asterisk
+    DESC Asteris
+
+HOST esniper
+    DESC esniper
+
+HOST roundcubemail
+    DESC roundcubemail
+
+HOST mailer
+    DESC New Mail Server
+
+HOST asterisk
+    DESC Asteriskk
+

+ 19 - 5
sssh.sh

@@ -8,6 +8,7 @@
 #
 #        v2    start new version, complete rewrite of code
 #        ---
+#        V1.9.3   Fix for ip address as hostname, more robust for special hostname
 #        V1.9.2   Rewrite project menu output, change from echo to printf
 #        V1.9.1   Project overview now accept project names as input [08.11.2017]
 #        V1.9     [06.10.2017]
@@ -78,15 +79,28 @@ function get_projects() {
          do
              if [ "${VARNAME}" == "HOST" ]
              then
-                  unset VAR_HOSTNAME
+                  ## reset vars
+                  unset HOSTNAME_VAR
 
-                  HOSTNAME=`echo ${VALUE} | sed 's/-/_/g'`
+                  ## define readable varname
+                  HOSTNAME="${VALUE}"
 
-                  [[ ${HOSTNAME} =~ '.' ]] && { VAR_HOSTNAME=${HOSTNAME}; HOSTNAME=`echo ${HOSTNAME} | cut -d'.' -f1` ; }
+                  ## save orig hostname
+                  HOSTNAME_VAR="${HOSTNAME}"
 
+                  ## add x to ip addresses because declare doesn't like numbers
+                  ## 10.10.10.10 => x10_10_10_10
+                  [[ ${HOSTNAME::1} == [0-9] ]] && { HOSTNAME_PRINT=${HOSTNAME}; HOSTNAME=x${HOSTNAME}; }  || HOSTNAME_PRINT=`echo ${HOSTNAME} | cut -d'.' -f1` ; 
+
+                  ## cleanup varname for array
+                  HOSTNAME="`echo ${HOSTNAME} | sed 's/\./_/g'| sed 's/-/_/g'`"
+
+                  ## Array by hostname
                   declare -Ag "${HOSTNAME}"
 
-                  [[ ${VAR_HOSTNAME} ]] && { eval "${HOSTNAME}+=(['fqdn']=\"${VAR_HOSTNAME}\")"; }
+                  ## write default variables to host array
+                  eval "${HOSTNAME}+=(['fqdn']=\"${HOSTNAME_VAR}\")"
+                  eval "${HOSTNAME}+=(['name']=\"${HOSTNAME_PRINT}\")"
 
 
                   eval "${projectname}+=(\"${HOSTNAME}\")"
@@ -256,7 +270,7 @@ function print_projectmenu() {
 
                   LINENUMBER=$[LINENUMBER+1]
 
-                  SSHHOST=${host}
+                  SSHHOST="${vars['name']}"
                   DESCRIBTION="${vars['desc']}"
                   USERNAME="${vars['user']}"
                   GROUP="${vars['group']}"