Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Inhalt

user:sprobst:blog:ubiquiti_unifi_switch_-_scripting

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)
 
function usage {
        echo
        echo $"Usage: $0  <on|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|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_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;'
                ;;
        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
Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
user/sprobst/blog/ubiquiti_unifi_switch_-_scripting.txt · Zuletzt geändert: 2022/04/15 19:26 von SProbst