Ubiquiti Unifi Switch - Scripting

Neben dem Standard Unifi Controller kann im Unifi-Umfeld auch gescriptet werden. Durch meine neue Aufgabe habe ich mich mit Brocade, Ruckus und CISCO befassen dürfen. Dadurch bin ich auf die Idee gekommen auch mal im Ubiquiti und HP Umfeld zu schauen, was dort per CLI(SSH und Telnet) geht und siehe da, die Geräte verstecken eine Menge Features, die man als Laie so nicht kennt. Dabei ist mir dann die Idee gekommen PoE Ports zum Zeitgesteuert an und abzuschalten.
Nach ein paar Test habe ich im Internet zu diesem Thema recherchiert und habe sogar jemand gefunden, der diese Idee schon realisiert hat.

Hier der Link: https://nerdig.es/usw-poe-per-script-steuern/ Das Script veröffentliche ich als Backup hiermit. Ich hoffe, das ist okay und werden Eigentümer nachträglich dazu befragen. Ich empfinde es als eine sehr smarte Lösunge, die man mit einem Unifi Controller kombinieren kann. Ich verwende diesen mit einem Alpine Linux.

#!/bin/bash # https://nerdig.es/usw-poe-per-script-steuern/ # Stephan Klein # Dipl.-Inform. (FH) # # 24v Option hinzugefügt -> Steffen Probst function usage { echo echo $"Usage: $0 <on|24V|off> " echo echo "Example: $0 192.168.178.12 on 8" echo } function is_number { [[ "$1" =~ ^[0-9]+$ ]] && return 0 || return 1 } function is_host { [[ "$1" =~ ^[0-9a-zA-Z.:-]+$ ]] && return 0 || return 1 } function valid_action { [[ "${1,,}" =~ ^on|24v|off$ ]] && return 0 || return 1 } # check if hostname or IP is provided as target switch if ! is_host "$1"; then usage echo -e "ERROR: Target switch must be a valid host name or IPv4/v6 address!\n" exit 2 fi # check if on or off is provided as action if ! valid_action "$2"; then usage echo -e "ERROR: action must be on or off!\n" exit 2 fi # check if port-parameter is number if ! is_number "$3" ; then usage echo -e "ERROR: portnumber contains non-numerical characters!\n" exit 3 fi cmd_pre="enable\n$password\nconfigure\n" cmd_on="interface 0/$3\npoe opmode auto\nexit" cmd_24v="interface 0/$3\npoe opmode passive24v\nexit" cmd_off="interface 0/$3\npoe opmode shutdown\nexit" cmd_status="show poe status 0/$3" cmd_post="\nexit\nexit\n" case "${2,,}" in on) ssh admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode auto" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;' ;; 24v) ssh admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode passive24v" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;' ;; off) ssh admin@$1 '(echo "enable" ; echo "configure" ; echo "interface 0/'$3'" ; echo "poe opmode shutdown" ; echo "exit" ; echo "exit"; echo "exit" ) | telnet localhost 23 ; exit;' ;; *) usage exit 2 ;; esac