Massen Reset von Ruckus Access Point
Für ein massenhaften Reset von Ruckus AP welche über ein ZD verwaltet werden habe ich hier eine kleines Script geschrieben.
Funktion
Das Script arbeitet eine Liste mit den IP-Adressen der AP einzeln ab. Dafür Verbindet sich das Script mit dem Access Point und führt drei Befehle aus und zwar folgende:
- set factory
- reboot
- exit
Das Script ist darauf ausgelegt, dass man sich noch nie per SSH mit dem AP verbunden hat. Falls dies jedoch der Fall wäre, muss man den Betroffen Abschnitt in der Datei „~.ssh/known_hosts“ entfernt werden. Das Passwort und der Benutzername sind identisch wie die Anmeldedaten im ZD. Falls im Passwort das „$“-Zeichen beinhaltet, kann dies mit „\“ negiert werden.
Quelldaten
#!/usr/bin/env bash ########################################################################################## #Script Name : net_scann # #Description : Bashscript for reset ruckus access point per ssh # #Author : Gregor Holzfeind # #Email : gholzfeind@heiniger-ag # #License : GNU General Public License v3.0 # #Version : 0.1 # ########################################################################################## ########################################################################################## # History # # Version Datum Änderungen # # 0.1 06.07.2020 Basis-Script # ########################################################################################## #Variable not editabel var_username='admin' #User var_password='admin' #Passwort from user #Variable editabel var_list_ap="test.csv" #liste withe ip-address of ap's #function #system check func_sys_check() { var_check_expect=$(which expect) var_check_spawn=$(which spawn) check_qrencode=$(which qrencode) if [ "$var_check_expect" == "/usr/bin/expect" ] then var_exp_test="1" else var_exp_test="0" fi if [ "$var_check_spawn" == "/usr/bin/spawn" ] then var_spawn_test="1" else var_spawn_test="0" fi if [ "$var_exp_test" == "1" ] && [ "$var_spawn_test" == "1" ] then echo "Prüfung erfolgreich" > l else if [ "$var_exp_test" == "0" ] then var_test_exp="- expect\n" else var_test_exp="" fi if [ "$var_spawn_test" == "0" ] then var_test_spawn="- spawn\n" else var_test_spawn="" fi echo -e "Es fehlen folgend(e) Programm(e):\n$var_test_exp$var_test_spawn\nBitte installieren Sie die Programme!" fi } #access point reset function func_ap_reset() { expect <<DONE spawn ssh $var_ipaddress ;#SSH-Login expect "The*" ; send "yes\r" ;#ssh-key accept expect "Ple*" send "$var_username\r" ;#userlogin expect "* " send "$var_password\r" ;#send userpassword expect "rkscli:*" send "set factory\r" ;#Factory Reset expect "*" send "reboot\r" ;#AP reboot expect "*" send "exit\r" ;#leave ssh connection expect eof DONE } #Programm #func_sys_check while read -r var_ipaddress do func_ap_reset sleep 5 done < $var_list_ap